├── files └── .gitkeep ├── templates ├── .gitkeep ├── health_alarm_notify.conf.j2 ├── etc │ ├── systemd │ │ └── system │ │ │ └── netdata.service.j2 │ └── init.d │ │ ├── netdata.redhat.j2 │ │ └── netdata.debian.j2 └── stream.conf.j2 ├── .flake8 ├── molecule ├── centos7 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── centos8 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── debian10 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── debian11 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── debian8 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── debian9 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── fedora34 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── fedora35 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── rocky8 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── alpine313 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── alpine314 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu1604 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu1804 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu2004 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu2204 │ ├── verify.yml │ ├── INSTALL.rst │ └── molecule.yml └── shared │ ├── verify.yml │ ├── converge.yml │ └── prepare.yml ├── vars └── main.yml ├── CONTRIBUTORS.md ├── .ansible-lint ├── requirements-dev.in ├── requirements.in ├── requirements.yml ├── CONTRIBUTING.md ├── tasks ├── debian.yml ├── update.yml ├── auto_updates.yml ├── main.yml ├── redhat.yml ├── uninstall.yml ├── install.yml ├── set_facts.yml └── config.yml ├── .gitignore ├── .github ├── workflows │ ├── release-drafter.yml │ ├── release-galaxy.yml │ └── default.yml ├── stale.yml └── release-drafter.yml ├── meta └── main.yml ├── pyproject.toml ├── handlers └── main.yml ├── .yamllint ├── requirements.txt ├── .pre-commit-config.yaml ├── LICENSE.md ├── README.md ├── playbook.yml ├── .gitlab-ci.yml ├── CODE_OF_CONDUCT.md ├── requirements-dev.txt ├── defaults └── main.yml └── poetry.lock /files/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | exclude = venv/ 3 | -------------------------------------------------------------------------------- /molecule/centos7/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/centos8/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/debian10/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/debian11/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/debian8/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/debian9/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/fedora34/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/fedora35/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/rocky8/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/alpine313/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/alpine314/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu1604/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu1804/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu2004/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu2204/verify.yml: -------------------------------------------------------------------------------- 1 | ../shared/verify.yml -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for ansible-netdata 3 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | Larry Smith Jr. - mrlesmithjr@gmail.com 2 | -------------------------------------------------------------------------------- /.ansible-lint: -------------------------------------------------------------------------------- 1 | skip_list: 2 | - name[casing] 3 | - name[template] 4 | -------------------------------------------------------------------------------- /requirements-dev.in: -------------------------------------------------------------------------------- 1 | # Python requirements for development 2 | -c requirements.txt 3 | autopep8 4 | flake8 5 | pycodestyle 6 | pylint 7 | tox 8 | -------------------------------------------------------------------------------- /requirements.in: -------------------------------------------------------------------------------- 1 | # Python requirements for executing 2 | ansible 3 | ansible-lint 4 | docker 5 | mkdocs 6 | molecule 7 | pip-tools 8 | yamllint 9 | -------------------------------------------------------------------------------- /requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | collections: 3 | - name: community.docker 4 | version: "*" # Need to ensure that the latest version is installed or Molecule fails 5 | roles: [] 6 | -------------------------------------------------------------------------------- /molecule/shared/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # This is an example playbook to execute Ansible tests. 3 | 4 | - name: Verify 5 | hosts: all 6 | tasks: 7 | - name: Example assertion 8 | ansible.builtin.assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /molecule/shared/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | tasks: 5 | - name: Include ansible-netdata 6 | ansible.builtin.include_role: 7 | name: ansible-netdata 8 | vars: 9 | netdata_epel_setup: "{{ ansible_hostname == 'centos7' }}" 10 | -------------------------------------------------------------------------------- /templates/health_alarm_notify.conf.j2: -------------------------------------------------------------------------------- 1 | {% for key in netdata_alarm_notify_configs %} 2 | {{ key }}="{{ netdata_alarm_notify_configs[key] }}" 3 | {% endfor %} 4 | 5 | {% if netdata_custom_sender_function is defined %} 6 | custom_sender() { 7 | {{ netdata_custom_sender_function }} 8 | } 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to ansible-netdata 2 | 3 | ## Table Of Contents 4 | 5 | [Code of Conduct](#code-of-conduct) 6 | 7 | ## Code of Conduct 8 | 9 | This project and everyone participating in it is governed by the [ansible-netdata Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com). 10 | -------------------------------------------------------------------------------- /tasks/debian.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: debian | Installing git 3 | ansible.builtin.apt: 4 | name: git 5 | state: present 6 | become: true 7 | 8 | - name: debian | Installing iproute Package 9 | ansible.builtin.apt: 10 | name: iproute 11 | state: present 12 | become: true 13 | when: > 14 | (ansible_distribution == "Debian" and 15 | ansible_distribution_version|int < 10) or 16 | (ansible_distribution == "Ubuntu" and 17 | ansible_distribution_version < "18.04") 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | !* 2 | 3 | ### Ansible 4 | .cache/ 5 | 6 | ### VirtualEnv ### 7 | # Virtualenv 8 | .venv/ 9 | venv/ 10 | 11 | ### VisualStudioCode ### 12 | .vscode/* 13 | !.vscode/settings.json 14 | !.vscode/tasks.json 15 | !.vscode/launch.json 16 | !.vscode/extensions.json 17 | *.code-workspace 18 | 19 | # Local History for Visual Studio Code 20 | .history/ 21 | 22 | ### VisualStudioCode Patch ### 23 | # Ignore all local history of files 24 | .history 25 | .ionide 26 | 27 | .vscode/ 28 | 29 | .DS_Store 30 | -------------------------------------------------------------------------------- /molecule/shared/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare hosts for testing 3 | hosts: all 4 | tasks: 5 | - name: Update Apt Cache and install cron 6 | ansible.builtin.apt: 7 | name: cron 8 | update_cache: true 9 | become: true 10 | when: ansible_os_family == "Debian" 11 | 12 | - name: Install cron as requisite 13 | ansible.builtin.package: 14 | name: cronie 15 | state: present 16 | become: true 17 | when: ansible_os_family == "RedHat" 18 | -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name: Release Drafter 2 | 3 | on: 4 | push: 5 | # branches to consider in the event; optional, defaults to all 6 | branches: 7 | - main 8 | - master 9 | 10 | jobs: 11 | update_release_draft: 12 | runs-on: ubuntu-latest 13 | steps: 14 | # Drafts your next Release notes as Pull Requests are merged into "master" 15 | - uses: release-drafter/release-drafter@v5 16 | env: 17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 18 | -------------------------------------------------------------------------------- /templates/etc/systemd/system/netdata.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Real time performance monitoring 3 | After=network.target httpd.service squid.service nfs-server.service mysqld.service mysql.service named.service postfix.service 4 | 5 | [Service] 6 | Type=simple 7 | User={{ netdata_user_info['user'] }} 8 | Group={{ netdata_user_info['group'] }} 9 | ExecStart=/usr/sbin/netdata -D 10 | Restart=on-failure 11 | 12 | # saving a big db on slow disks may need some time 13 | TimeoutStopSec=60 14 | 15 | [Install] 16 | WantedBy=multi-user.target 17 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | author: Larry Smith Jr. 4 | description: Ansible role to install/configure Netdata 5 | license: MIT 6 | namespace: mrlesmithjr 7 | role_name: netdata 8 | 9 | min_ansible_version: "2.0" 10 | 11 | platforms: 12 | - name: EL 13 | versions: 14 | - all 15 | - name: Debian 16 | versions: 17 | - all 18 | - name: Ubuntu 19 | versions: 20 | - all 21 | 22 | galaxy_tags: 23 | - system 24 | - performance 25 | - monitoring 26 | 27 | dependencies: [] 28 | -------------------------------------------------------------------------------- /tasks/update.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: update | Updating Netdata ({{ netdata_updater }}) From {{ netdata_source_dir }} # noqa no-changed-when 3 | ansible.builtin.command: "{{ netdata_updater }}" 4 | args: 5 | chdir: "{{ netdata_source_dir }}" 6 | become: true 7 | notify: restart netdata 8 | when: not netdata_update_force|bool 9 | 10 | - name: update | Force Updating Netdata ({{ netdata_updater }}) From {{ netdata_source_dir }} # noqa no-changed-when 11 | ansible.builtin.command: "{{ netdata_updater }} -f" 12 | args: 13 | chdir: "{{ netdata_source_dir }}" 14 | become: true 15 | when: netdata_update_force 16 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "ansible-netdata" 3 | version = "0.1.0" 4 | description = "" 5 | authors = ["Larry Smith Jr. "] 6 | readme = "README.md" 7 | 8 | [tool.poetry.dependencies] 9 | python = ">=3.8.1,<4.0" 10 | ansible = "6.6.0" 11 | 12 | [tool.poetry.group.dev.dependencies] 13 | ansible-lint = "6.8.7" 14 | black = "^22.10.0" 15 | pylint = "^2.15.7" 16 | molecule = {extras = ["docker"], version = "^4.0.3"} 17 | flake8 = "^6.0.0" 18 | cookiecutter = "^2.1.1" 19 | pre-commit = "^2.20.0" 20 | 21 | [build-system] 22 | requires = ["poetry-core"] 23 | build-backend = "poetry.core.masonry.api" 24 | -------------------------------------------------------------------------------- /molecule/rocky8/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/alpine313/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/alpine314/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/centos7/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/centos8/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian10/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian11/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian8/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian9/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/fedora34/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/fedora35/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu1604/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu1804/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu2004/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu2204/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for ansible-netdata 3 | # 4 | - name: reload systemd netdata 5 | ansible.builtin.systemd: 6 | name: "netdata" 7 | daemon_reload: true 8 | become: true 9 | 10 | - name: restart netdata 11 | ansible.builtin.service: 12 | name: "netdata" 13 | state: "restarted" 14 | enabled: true 15 | sleep: 10 16 | become: true 17 | 18 | - name: start netdata 19 | ansible.builtin.service: 20 | name: "netdata" 21 | state: "started" 22 | enabled: true 23 | become: true 24 | 25 | - name: stop netdata 26 | ansible.builtin.service: 27 | name: "netdata" 28 | state: "stopped" 29 | enabled: true 30 | become: true 31 | -------------------------------------------------------------------------------- /molecule/centos7/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: centos7 15 | image: mrlesmithjr/centos:7 16 | privileged: true 17 | command: /usr/sbin/init 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/centos8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: centos8 15 | image: mrlesmithjr/centos:8 16 | privileged: true 17 | command: /usr/sbin/init 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/rocky8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: rocky8 15 | image: mrlesmithjr/rocky:8 16 | privileged: true 17 | command: /usr/sbin/init 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/alpine313/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: alpine313 15 | image: mrlesmithjr/alpine:3.13 16 | privileged: true 17 | command: /sbin/init 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/alpine314/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: alpine314 15 | image: mrlesmithjr/alpine:3.14 16 | privileged: true 17 | command: /sbin/init 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/debian8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: debian8 15 | image: mrlesmithjr/debian:8 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/debian9/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: debian9 15 | image: mrlesmithjr/debian:9 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/fedora34/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: fedora34 15 | image: mrlesmithjr/fedora:34 16 | privileged: true 17 | command: /usr/sbin/init 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/fedora35/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: fedora35 15 | image: mrlesmithjr/fedora:35 16 | privileged: true 17 | command: /usr/sbin/init 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/debian10/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: debian10 15 | image: mrlesmithjr/debian:10 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/debian11/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: debian11 15 | image: mrlesmithjr/debian:11 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/ubuntu1604/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: ubuntu1604 15 | image: mrlesmithjr/ubuntu:16.04 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/ubuntu1804/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: ubuntu1804 15 | image: mrlesmithjr/ubuntu:18.04 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/ubuntu2004/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: ubuntu2004 15 | image: mrlesmithjr/ubuntu:20.04 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /molecule/ubuntu2204/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | enabled: false 5 | options: 6 | role-file: requirements.yml 7 | driver: 8 | name: docker 9 | lint: | 10 | yamllint . 11 | ansible-lint 12 | flake8 13 | platforms: 14 | - name: ubuntu2204 15 | image: mrlesmithjr/ubuntu:22.04 16 | privileged: true 17 | command: /lib/systemd/systemd 18 | # tmpfs: 19 | # - /run 20 | # - /tmp 21 | volumes: 22 | - /sys/fs/cgroup:/sys/fs/cgroup:rw 23 | cgroupns_mode: host 24 | # groups: [] 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /tasks/auto_updates.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Since netdata 1.11 the auto-updater installs the cron by itself 3 | # This is a legacy when Netdata didn't handle the cron itself 4 | - name: auto_updates | Setting Up Cron Job For Auto Updates 5 | ansible.builtin.cron: 6 | name: Netdata Auto Updates 7 | weekday: "{{ netdata_auto_updates['weekday'] }}" 8 | minute: "{{ netdata_auto_updates['minute'] }}" 9 | hour: "{{ netdata_auto_updates['hour'] }}" 10 | user: "{{ netdata_auto_updates['user'] }}" 11 | job: "{{ netdata_source_dir }}/{{ netdata_updater | basename }}" 12 | cron_file: netdata_auto_updates 13 | state: "{{ netdata_auto_updates['clean_legacy_cron'] | default(false) | ternary('absent', 'present') }}" 14 | become: true 15 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | # Label to use when marking an issue as stale 10 | staleLabel: wontfix 11 | # Comment to post when marking an issue as stale. Set to `false` to disable 12 | markComment: > 13 | This issue has been automatically marked as stale because it has not had 14 | recent activity. It will be closed if no further activity occurs. Thank you 15 | for your contributions. 16 | # Comment to post when closing a stale issue. Set to `false` to disable 17 | closeComment: false 18 | -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | # Based on ansible-lint config 3 | extends: default 4 | 5 | ignore: | 6 | venv/ 7 | 8 | rules: 9 | braces: 10 | max-spaces-inside: 1 11 | level: error 12 | brackets: 13 | max-spaces-inside: 1 14 | level: error 15 | colons: 16 | max-spaces-after: -1 17 | level: error 18 | commas: 19 | max-spaces-after: -1 20 | level: error 21 | comments: disable 22 | comments-indentation: disable 23 | document-start: disable 24 | empty-lines: 25 | max: 3 26 | level: error 27 | hyphens: 28 | level: error 29 | indentation: disable 30 | key-duplicates: enable 31 | line-length: disable 32 | new-line-at-end-of-file: disable 33 | new-lines: 34 | type: unix 35 | trailing-spaces: disable 36 | truthy: disable 37 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ansible-core==2.13.10 ; python_full_version >= "3.8.1" and python_version < "4.0" 2 | ansible==6.6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 3 | cffi==1.15.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 4 | cryptography==41.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 5 | jinja2==3.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" 6 | markupsafe==2.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 7 | packaging==23.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 8 | pycparser==2.21 ; python_full_version >= "3.8.1" and python_version < "4.0" 9 | pyyaml==6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 10 | resolvelib==0.8.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 11 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name-template: "v$RESOLVED_VERSION 🌈" 2 | tag-template: "v$RESOLVED_VERSION" 3 | categories: 4 | - title: "🚀 Features" 5 | labels: 6 | - "feature" 7 | - "enhancement" 8 | - title: "🐛 Bug Fixes" 9 | labels: 10 | - "fix" 11 | - "bugfix" 12 | - "bug" 13 | - title: "🧰 Maintenance" 14 | label: "chore" 15 | - title: "🧺 Miscellaneous" #Everything except ABAP 16 | label: "misc" 17 | change-template: "- $TITLE @$AUTHOR (#$NUMBER)" 18 | change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. 19 | version-resolver: 20 | major: 21 | labels: 22 | - "major" 23 | minor: 24 | labels: 25 | - "minor" 26 | patch: 27 | labels: 28 | - "patch" 29 | default: patch 30 | template: | 31 | ## Changes 32 | $CHANGES 33 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # tasks file for ansible-netdata 3 | 4 | - name: Set facts 5 | ansible.builtin.include_tasks: set_facts.yml 6 | 7 | - name: Debian specific tasks 8 | ansible.builtin.include_tasks: debian.yml 9 | when: ansible_os_family == "Debian" 10 | 11 | - name: RHEL specific tasks 12 | ansible.builtin.include_tasks: redhat.yml 13 | when: ansible_os_family == "RedHat" 14 | 15 | - name: Install Netdata 16 | ansible.builtin.include_tasks: install.yml 17 | 18 | - name: Configure Netdata 19 | ansible.builtin.include_tasks: config.yml 20 | when: netdata_config 21 | 22 | - name: Update Netdata 23 | ansible.builtin.include_tasks: update.yml 24 | when: netdata_update or netdata_update_force 25 | 26 | - name: Setup Netdata auto updates 27 | ansible.builtin.include_tasks: auto_updates.yml 28 | when: netdata_auto_updates['enabled'] 29 | 30 | - name: Uninstall Netdata 31 | ansible.builtin.include_tasks: uninstall.yml 32 | when: netdata_uninstall 33 | tags: 34 | - netdata_uninstall 35 | -------------------------------------------------------------------------------- /templates/stream.conf.j2: -------------------------------------------------------------------------------- 1 | # netdata stream configuration 2 | 3 | {% if (netdata_stream_master_node == '') or netdata_stream_proxy %} 4 | [{{ netdata_stream_receive_api_key }}] 5 | # enable/disable this API key 6 | enabled = yes 7 | 8 | # one hour of data for each of the slaves 9 | default history = 3600 10 | 11 | # do not save slave metrics on disk 12 | default memory = ram 13 | 14 | # alarms checks, only while the slave is connected 15 | health enabled by default = auto 16 | 17 | {% endif %} 18 | {% if netdata_stream_master_node != '' %} 19 | [stream] 20 | # stream metrics to another netdata 21 | enabled = yes 22 | 23 | # the IP and PORT of the master 24 | destination = {{ netdata_stream_master_node }} 25 | 26 | # TLS client options 27 | {% for ssl_option, ssl_value in netdata_client_ssl_options.items() %} 28 | {{ ssl_option }} = {{ ssl_value }} 29 | {% endfor %} 30 | 31 | # the API key to use 32 | api key = {{ netdata_stream_send_api_key }} 33 | {% endif %} 34 | -------------------------------------------------------------------------------- /tasks/redhat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: redhat | Install git 3 | ansible.builtin.yum: 4 | name: git 5 | state: present 6 | 7 | - name: redhat | Check if EPEL repo is already configured. 8 | ansible.builtin.stat: 9 | path: "{{ netdata_epel_repofile_path }}" 10 | register: epel_repofile_result 11 | when: netdata_epel_setup 12 | 13 | - name: redhat | Install EPEL repo. 14 | ansible.builtin.yum: 15 | name: "{{ netdata_epel_repo_url }}" 16 | state: present 17 | register: result 18 | when: 19 | - netdata_epel_setup 20 | - not epel_repofile_result.stat.exists 21 | 22 | - name: redhat | Import EPEL GPG key. 23 | ansible.builtin.rpm_key: 24 | key: "{{ netdata_epel_repo_gpg_key_url }}" 25 | state: present 26 | when: 27 | - netdata_epel_setup 28 | - not epel_repofile_result.stat.exists 29 | 30 | - name: redhat | install okay repo 31 | ansible.builtin.yum: 32 | name: http://repo.okay.com.mx/centos/6/x86_64/release/okay-release-1-3.el6.noarch.rpm 33 | state: present 34 | when: netdata_centos6_install_okay 35 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | # See https://pre-commit.com for more information 2 | # See https://pre-commit.com/hooks.html for more hooks 3 | repos: 4 | - repo: https://github.com/pre-commit/pre-commit-hooks 5 | rev: v4.4.0 6 | hooks: 7 | - id: check-added-large-files 8 | - id: check-executables-have-shebangs 9 | - id: check-merge-conflict 10 | - id: check-symlinks 11 | - id: detect-private-key 12 | - id: end-of-file-fixer 13 | - id: no-commit-to-branch 14 | args: [--branch, develop, --branch, master, --branch, main] 15 | - id: trailing-whitespace 16 | - repo: https://github.com/ansible-community/ansible-lint 17 | rev: v6.17.0 18 | hooks: 19 | - id: ansible-lint 20 | - repo: https://github.com/psf/black 21 | rev: 23.3.0 22 | hooks: 23 | - id: black 24 | language_version: python3 25 | - repo: https://github.com/PyCQA/flake8 26 | rev: 6.0.0 27 | hooks: 28 | - id: flake8 29 | - repo: https://github.com/adrienverge/yamllint 30 | rev: v1.32.0 31 | hooks: 32 | - id: yamllint 33 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Larry Smith Jr. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /tasks/uninstall.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: uninstall | Prepping For Uninstalling Netdata 3 | ansible.builtin.replace: 4 | dest: "{{ netdata_source_dir }}/{{ netdata_uninstaller | basename }}" 5 | regexp: 'rm -I -R "' 6 | replace: 'rm -R "' 7 | become: true 8 | 9 | - name: uninstall | Prepping For Uninstalling Netdata 10 | ansible.builtin.replace: 11 | dest: "{{ netdata_source_dir }}/{{ netdata_uninstaller | basename }}" 12 | regexp: 'rm -i "' 13 | replace: 'rm "' 14 | become: true 15 | 16 | - name: uninstall | Uninstalling Netdata # noqa no-changed-when 17 | ansible.builtin.command: "{{ netdata_uninstaller }} --force" 18 | args: 19 | chdir: "{{ netdata_source_dir }}" 20 | become: true 21 | 22 | - name: uninstall | Cleaning Up After Uninstalling Netdata 23 | ansible.builtin.replace: 24 | dest: "{{ netdata_source_dir }}/{{ netdata_uninstaller | basename }}" 25 | regexp: 'rm -R "' 26 | replace: 'rm -I -R "' 27 | become: true 28 | 29 | - name: uninstall | Cleaning Up After Uninstalling Netdata 30 | ansible.builtin.replace: 31 | dest: "{{ netdata_source_dir }}/{{ netdata_uninstaller | basename }}" 32 | regexp: 'rm "' 33 | replace: 'rm -i "' 34 | become: true 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ansible-netdata 2 | 3 | Ansible role to install/configure Netdata 4 | 5 | ## Build Status 6 | 7 | ### GitHub Actions 8 | 9 | ![Molecule Test](https://github.com/mrlesmithjr/ansible-netdata/workflows/Molecule%20Test/badge.svg) 10 | 11 | ## Requirements 12 | 13 | For any required Ansible roles, review: 14 | [requirements.yml](requirements.yml) 15 | 16 | ## Role Variables 17 | 18 | [defaults/main.yml](defaults/main.yml) 19 | 20 | ## Dependencies 21 | 22 | ## Example Playbook 23 | 24 | [playbook.yml](playbook.yml) 25 | 26 | ## License 27 | 28 | MIT 29 | 30 | ## Author Information 31 | 32 | Larry Smith Jr. 33 | 34 | - [@mrlesmithjr](https://twitter.com/mrlesmithjr) 35 | - [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com) 36 | - [http://everythingshouldbevirtual.com](http://everythingshouldbevirtual.com) 37 | 38 | Buy Me A Coffee 39 | 40 | > NOTE: Repo has been created/updated using [https://github.com/mrlesmithjr/cookiecutter-ansible-role](https://github.com/mrlesmithjr/cookiecutter-ansible-role) as a template. 41 | -------------------------------------------------------------------------------- /.github/workflows/release-galaxy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Ansible Galaxy 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - master 8 | release: 9 | types: 10 | - published 11 | 12 | jobs: 13 | galaxy: 14 | runs-on: ubuntu-latest 15 | strategy: 16 | matrix: 17 | python-version: [3.9] 18 | steps: 19 | - uses: actions/checkout@v3 20 | with: 21 | submodules: recursive 22 | - name: Set up Python ${{ matrix.python-version }} 23 | uses: actions/setup-python@v4 24 | with: 25 | python-version: ${{ matrix.python-version }} 26 | - uses: actions/cache@v2 27 | with: 28 | path: ~/.cache/pip 29 | key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} 30 | restore-keys: | 31 | ${{ runner.os }}-pip- 32 | - name: Install dependencies 33 | run: | 34 | python -m pip install --upgrade pip 35 | pip install -r requirements.txt -r requirements-dev.txt 36 | pip install pre-commit 37 | - name: Trigger a new import on Galaxy. 38 | run: ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }} $(echo ${{ github.repository }} | cut -d/ -f1) $(echo ${{ github.repository }} | cut -d/ -f2) 39 | -------------------------------------------------------------------------------- /playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Provision Netdata registry 3 | hosts: netdata_registry 4 | vars: 5 | netdata_registry_enabled: true 6 | netdata_registry_to_announce: "http://{{ netdata_stream_master_node }}:{{ netdata_default_port }}" 7 | pri_domain_name: test.vagrant.local 8 | netdata_stream_enabled: true 9 | netdata_stream_api_key: 359CCA67-C678-49E7-9A39-DEC1B92DFB34 10 | netdata_stream_master_node: 192.168.250.10 11 | tasks: 12 | - name: Include ansible-nodejs 13 | ansible.builtin.include_role: 14 | name: ansible-nodejs 15 | - name: Include ansible-netdata 16 | ansible.builtin.include_role: 17 | name: ansible-netdata 18 | 19 | - name: Provision Netdata 20 | hosts: netdata:!netdata_registry 21 | vars: 22 | netdata_registry_enabled: false 23 | netdata_registry_to_announce: "http://{{ netdata_stream_master_node }}:{{ netdata_default_port }}" 24 | pri_domain_name: test.vagrant.local 25 | netdata_stream_enabled: true 26 | netdata_stream_api_key: 359CCA67-C678-49E7-9A39-DEC1B92DFB34 27 | netdata_stream_master_node: 192.168.250.10 28 | tasks: 29 | - name: Include ansible-nodejs 30 | ansible.builtin.include_role: 31 | name: ansible-nodejs 32 | - name: Include ansible-netdata 33 | ansible.builtin.include_role: 34 | name: ansible-netdata 35 | -------------------------------------------------------------------------------- /tasks/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: install | Defining Auto Update CLI Option 3 | ansible.builtin.set_fact: 4 | auto_update_cli_option: "{{ netdata_auto_updates['enabled'] | ternary('--auto-update', '') }}" 5 | 6 | - name: install | Cloning {{ netdata_git_repo }} to {{ netdata_source_dir }} 7 | ansible.builtin.git: 8 | repo: "{{ netdata_git_repo }}" 9 | dest: "{{ netdata_source_dir }}" 10 | depth: 1 11 | version: "{{ netdata_git_version_tag }}" 12 | become: true 13 | 14 | - name: use Netdata dependencies installation 15 | ansible.builtin.command: "{{ netdata_requirements_installer }} {{ netdata_requirements_installer_options | join(' ') }}" # noqa no-changed-when 16 | args: 17 | chdir: "{{ netdata_source_dir }}" 18 | become: true 19 | register: netdata_requirements_install 20 | changed_when: > 21 | 'All required packages are already installed. Now proceed to the next step.' 22 | not in netdata_requirements_install.stderr_lines 23 | 24 | - name: install | Installing Netdata ({{ netdata_installer }}) From {{ netdata_source_dir }} 25 | ansible.builtin.command: "{{ installer_cli | join(' ') }}" 26 | vars: 27 | installer_cli: 28 | - "{{ netdata_installer }}" 29 | - "{{ auto_update_cli_option }}" 30 | - "--dont-wait" 31 | args: 32 | chdir: "{{ netdata_source_dir }}" 33 | creates: /usr/sbin/netdata 34 | become: true 35 | notify: restart netdata 36 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | --- 2 | image: docker:git 3 | 4 | services: 5 | - docker:dind 6 | 7 | stages: 8 | - molecule-test 9 | 10 | before_script: 11 | - apk update && apk add --no-cache docker 12 | python3-dev py3-pip docker gcc git curl build-base 13 | autoconf automake py3-cryptography linux-headers 14 | musl-dev libffi-dev openssl-dev openssh 15 | - docker info 16 | - python3 --version 17 | - pip3 install --upgrade pip pip-tools 18 | - pip-sync requirements.txt requirements-dev.txt 19 | - ansible --version 20 | - molecule --version 21 | 22 | centos7: 23 | stage: molecule-test 24 | script: 25 | - molecule test --scenario-name centos7 26 | 27 | centos8: 28 | stage: molecule-test 29 | script: 30 | - molecule test --scenario-name centos8 31 | 32 | # debian8: 33 | # stage: molecule-test 34 | # script: 35 | # - molecule test --scenario-name debian8 36 | 37 | debian9: 38 | stage: molecule-test 39 | script: 40 | - molecule test --scenario-name debian9 41 | 42 | debian10: 43 | stage: molecule-test 44 | script: 45 | - molecule test --scenario-name debian10 46 | 47 | # fedora: 48 | # stage: molecule-test 49 | # script: 50 | # - molecule test --scenario-name fedora 51 | 52 | ubuntu1604: 53 | stage: molecule-test 54 | script: 55 | - molecule test --scenario-name ubuntu1604 56 | 57 | ubuntu1804: 58 | stage: molecule-test 59 | script: 60 | - molecule test --scenario-name ubuntu1804 61 | 62 | ubuntu2004: 63 | stage: molecule-test 64 | script: 65 | - molecule test --scenario-name ubuntu2004 66 | -------------------------------------------------------------------------------- /tasks/set_facts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: set_facts | Defining Debian Packages 3 | ansible.builtin.set_fact: 4 | netdata_debian_pre_reqs: 5 | - autoconf-archive 6 | - autoconf 7 | - autogen 8 | - automake 9 | - build-essential 10 | - cron 11 | - curl 12 | - gcc 13 | - git 14 | - libmnl-dev 15 | - libmnl0 16 | - libssl-dev 17 | - libuuid1 18 | - libuv1-dev 19 | - lm-sensors 20 | - make 21 | - netcat 22 | - pkg-config 23 | - python-mysqldb 24 | - python-psycopg2 25 | - python-pymongo 26 | - python-yaml 27 | - util-linux 28 | - uuid 29 | - uuid-dev 30 | - zlib1g-dev 31 | when: > 32 | ansible_distribution == "Debian" or 33 | (ansible_distribution == "Ubuntu" and 34 | ansible_distribution_version is version('20.04', '<')) 35 | 36 | - name: set_facts | Defining Debian Packages 37 | ansible.builtin.set_fact: 38 | netdata_debian_pre_reqs: 39 | - autoconf-archive 40 | - autoconf 41 | - autogen 42 | - automake 43 | - build-essential 44 | - cron 45 | - curl 46 | - gcc 47 | - git 48 | - libmnl-dev 49 | - libmnl0 50 | - libssl-dev 51 | - libuuid1 52 | - libuv1-dev 53 | - lm-sensors 54 | - make 55 | - netcat 56 | - pkg-config 57 | - python3-pymysql 58 | - python3-psycopg2 59 | - python3-pymongo 60 | - python3-yaml 61 | - util-linux 62 | - uuid 63 | - uuid-dev 64 | - zlib1g-dev 65 | when: 66 | - ansible_distribution == "Ubuntu" 67 | - ansible_distribution_version is version('20.04', '>=') 68 | -------------------------------------------------------------------------------- /.github/workflows/default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Molecule Test 3 | on: 4 | push: 5 | branches-ignore: 6 | - main 7 | - master 8 | pull_request: 9 | branches: 10 | - develop 11 | - main 12 | - master 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | strategy: 17 | fail-fast: false 18 | max-parallel: 4 19 | matrix: 20 | molecule_distro: 21 | # - alpine313 22 | # - alpine314 23 | # - centos7 24 | # - centos8 25 | # - debian8 26 | # - debian9 27 | - debian10 28 | - debian11 29 | # - fedora34 30 | # - fedora35 31 | # - rocky8 32 | # - ubuntu1604 33 | - ubuntu1804 34 | - ubuntu2004 35 | - ubuntu2204 36 | python-version: [3.9] 37 | 38 | steps: 39 | - uses: actions/checkout@v3 40 | with: 41 | submodules: recursive 42 | - name: Set up Python ${{ matrix.python-version }} 43 | uses: actions/setup-python@v4 44 | with: 45 | python-version: ${{ matrix.python-version }} 46 | - uses: actions/cache@v2 47 | with: 48 | path: ~/.cache/pip 49 | key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} 50 | restore-keys: | 51 | ${{ runner.os }}-pip- 52 | - name: Install dependencies 53 | run: | 54 | python -m pip install --upgrade pip 55 | pip install -r requirements.txt -r requirements-dev.txt 56 | pip install pre-commit 57 | - name: Run pre-commit checks 58 | run: | 59 | SKIP=no-commit-to-branch pre-commit run --all-files 60 | - name: Test with molecule 61 | run: | 62 | molecule test --scenario-name ${{ matrix.molecule_distro }} 63 | -------------------------------------------------------------------------------- /templates/etc/init.d/netdata.redhat.j2: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # netdata Real-time performance monitoring, done right 4 | # chkconfig: 345 99 01 5 | # description: Netdata is a daemon that collects data in real-time (per second) 6 | # and presents a web site to view and analyze them. The presentation 7 | # is also real-time and full of interactive charts that precisely 8 | # render all collected values. 9 | # processname: netdata 10 | 11 | # Source functions 12 | . /etc/rc.d/init.d/functions 13 | 14 | DAEMON="netdata" 15 | DAEMON_PATH=/usr/sbin 16 | PIDFILE=/var/run/$DAEMON.pid 17 | DAEMONOPTS="-P $PIDFILE" 18 | STOP_TIMEOUT="10" 19 | 20 | [ -e /etc/sysconfig/$DAEMON ] && . /etc/sysconfig/$DAEMON 21 | 22 | LOCKFILE=/var/lock/subsys/$DAEMON 23 | 24 | service_start() 25 | { 26 | [ -x $DAEMON_PATH ] || exit 5 27 | echo -n "Starting $DAEMON..." 28 | daemon $DAEMON_PATH/$DAEMON $DAEMONOPTS 29 | RETVAL=$? 30 | echo 31 | [ $RETVAL -eq 0 ] && touch $LOCKFILE 32 | return $RETVAL 33 | } 34 | 35 | service_stop() 36 | { 37 | printf "%-50s" "Stopping $DAEMON..." 38 | killproc -p ${PIDFILE} -d ${STOP_TIMEOUT} $DAEMON 39 | RETVAL=$? 40 | echo 41 | [ $RETVAL -eq 0 ] && rm -f ${PIDFILE} ${LOCKFILE} 42 | return $RETVAL 43 | } 44 | 45 | condrestart() 46 | { 47 | if ! service_status > /dev/null; then 48 | RETVAL=$1 49 | return $RETVAL 50 | fi 51 | 52 | service_stop 53 | service_start 54 | } 55 | 56 | service_status() 57 | { 58 | status -p ${PIDFILE} $DAEMON_PATH/$DAEMON 59 | } 60 | 61 | service_status_quiet() 62 | { 63 | status -p ${PIDFILE} $DAEMON_PATH/$DAEMON >/dev/null 2>&1 64 | } 65 | 66 | case "$1" in 67 | start) 68 | service_status_quiet && exit 0 69 | service_start 70 | ;; 71 | stop) 72 | service_status_quiet || exit 0 73 | service_stop 74 | ;; 75 | restart) 76 | service_stop 77 | service_start 78 | ;; 79 | try-restart) 80 | condrestart 0 81 | ;; 82 | force-reload) 83 | condrestart 7 84 | ;; 85 | status) 86 | service_status 87 | ;; 88 | *) 89 | echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}" 90 | exit 3 91 | esac 92 | -------------------------------------------------------------------------------- /tasks/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: config | Configuring Netdata 3 | ansible.builtin.template: 4 | src: netdata.conf.j2 5 | dest: "{{ netdata_config_file }}" 6 | owner: "{{ netdata_user_info['user'] }}" 7 | group: root 8 | mode: u=rx,g=rx,o=r 9 | notify: restart netdata 10 | become: true 11 | 12 | - name: config | Configuring Netdata Alarm Notifications 13 | ansible.builtin.template: 14 | dest: "{{ netdata_alarm_config_file }}" 15 | owner: "{{ netdata_user_info['user'] }}" 16 | group: root 17 | src: "health_alarm_notify.conf.j2" 18 | mode: u=rw,g=rw,o=r 19 | notify: restart netdata 20 | become: true 21 | when: netdata_alarm_configure 22 | 23 | - name: config | Configuring Netdata streaming 24 | ansible.builtin.template: 25 | src: stream.conf.j2 26 | dest: "{{ netdata_stream_config_file }}" 27 | owner: "{{ netdata_user_info['user'] }}" 28 | group: root 29 | mode: u=rx,g=rx,o=r 30 | notify: restart netdata 31 | become: true 32 | when: netdata_stream_enabled 33 | 34 | - name: config | Configuring Netdata Service (systemd) 35 | ansible.builtin.template: 36 | src: etc/systemd/system/netdata.service.j2 37 | dest: /etc/systemd/system/netdata.service 38 | owner: root 39 | group: root 40 | mode: u=rw,g=rw,o=r 41 | notify: 42 | - reload systemd netdata 43 | - restart netdata 44 | become: true 45 | when: ansible_service_mgr == "systemd" 46 | 47 | - name: config | Configuring Netdata Service (upstart|sysvinit) - Debian 48 | ansible.builtin.template: 49 | src: etc/init.d/netdata.debian.j2 50 | dest: /etc/init.d/netdata 51 | owner: root 52 | group: root 53 | mode: u=rwx,g=rx,o=rx 54 | notify: 55 | - restart netdata 56 | become: true 57 | when: > 58 | (ansible_service_mgr == "upstart" 59 | or ansible_service_mgr == "sysvinit") and 60 | ansible_os_family == "Debian" 61 | 62 | - name: config | Configuring Netdata Service (upstart|sysvinit) - RedHat 63 | ansible.builtin.template: 64 | src: etc/init.d/netdata.redhat.j2 65 | dest: /etc/init.d/netdata 66 | owner: root 67 | group: root 68 | mode: u=rwx,g=rx,o=rx 69 | notify: 70 | - restart netdata 71 | become: true 72 | when: > 73 | (ansible_service_mgr == "upstart" 74 | or ansible_service_mgr == "sysvinit") and 75 | ansible_os_family == "RedHat" 76 | -------------------------------------------------------------------------------- /templates/etc/init.d/netdata.debian.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | ### BEGIN INIT INFO 4 | # Provides: netdata 5 | # Required-Start: $local_fs $remote_fs $network $named $time apache2 httpd squid nginx mysql named opensips upsd hostapd postfix lm_sensors 6 | # Required-Stop: $local_fs $remote_fs $network $named $time apache2 httpd squid nginx mysql named opensips upsd hostapd postfix lm_sensors 7 | # Should-Start: $local_fs $network $named $remote_fs $time $all 8 | # Should-Stop: $local_fs $network $named $remote_fs $time $all 9 | # Default-Start: 2 3 4 5 10 | # Default-Stop: 0 1 6 11 | # Short-Description: Start and stop the netdata real-time monitoring server daemon 12 | # Description: Controls the main netdata monitoring server daemon "netdata". 13 | # and all its plugins. 14 | ### END INIT INFO 15 | # 16 | set -e 17 | set -u 18 | ${DEBIAN_SCRIPT_DEBUG:+ set -v -x} 19 | 20 | DAEMON="netdata" 21 | DAEMON_PATH=/usr/sbin 22 | PIDFILE=/var/run/$DAEMON.pid 23 | DAEMONOPTS="-P $PIDFILE" 24 | 25 | test -x $DAEMON_PATH/$DAEMON || exit 0 26 | 27 | . /lib/lsb/init-functions 28 | 29 | # Safeguard (relative paths, core dumps..) 30 | cd / 31 | umask 022 32 | 33 | service_start() { 34 | log_daemon_msg "Starting real-time performance monitoring" "netdata" 35 | start_daemon -p $PIDFILE $DAEMON_PATH/$DAEMON $DAEMONOPTS 36 | RETVAL=$? 37 | log_end_msg $RETVAL 38 | return $RETVAL 39 | } 40 | 41 | service_stop() { 42 | log_daemon_msg "Stopping real-time performance monitoring" "netdata" 43 | killproc -p ${PIDFILE} $DAEMON_PATH/$DAEMON 44 | RETVAL=$? 45 | log_end_msg $RETVAL 46 | 47 | if [ $RETVAL -eq 0 ]; then 48 | rm -f ${PIDFILE} 49 | fi 50 | return $RETVAL 51 | } 52 | 53 | condrestart() { 54 | if ! service_status > /dev/null; then 55 | RETVAL=$1 56 | return 57 | fi 58 | 59 | service_stop 60 | service_start 61 | } 62 | 63 | service_status() { 64 | status_of_proc -p $PIDFILE $DAEMON_PATH/$DAEMON netdata 65 | } 66 | 67 | 68 | # 69 | # main() 70 | # 71 | 72 | case "${1:-''}" in 73 | 'start') 74 | service_start 75 | ;; 76 | 77 | 'stop') 78 | service_stop 79 | ;; 80 | 81 | 'restart') 82 | service_stop 83 | service_start 84 | ;; 85 | 86 | 'try-restart') 87 | condrestart 0 88 | ;; 89 | 90 | 'force-reload') 91 | condrestart 7 92 | ;; 93 | 94 | 'status') 95 | service_status && exit 0 || exit $? 96 | ;; 97 | *) 98 | echo "Usage: $0 {start|stop|restart|try-restart|force-reload|status}" 99 | exit 1 100 | esac 101 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | - Using welcoming and inclusive language 18 | - Being respectful of differing viewpoints and experiences 19 | - Gracefully accepting constructive criticism 20 | - Focusing on what is best for the community 21 | - Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | - The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | - Trolling, insulting/derogatory comments, and personal or political attacks 28 | - Public or private harassment 29 | - Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | - Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at mrlesmithjr@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- 1 | ansible-compat==3.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" 2 | ansible-core==2.13.10 ; python_full_version >= "3.8.1" and python_version < "4.0" 3 | ansible-lint==6.8.7 ; python_full_version >= "3.8.1" and python_version < "4.0" 4 | ansible==6.6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 5 | arrow==1.2.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 6 | astroid==2.15.5 ; python_full_version >= "3.8.1" and python_version < "4.0" 7 | attrs==23.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 8 | binaryornot==0.4.4 ; python_full_version >= "3.8.1" and python_version < "4.0" 9 | black==22.12.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 10 | bracex==2.3.post1 ; python_full_version >= "3.8.1" and python_version < "4.0" 11 | certifi==2023.5.7 ; python_full_version >= "3.8.1" and python_version < "4.0" 12 | cffi==1.15.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 13 | cfgv==3.3.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 14 | chardet==5.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 15 | charset-normalizer==3.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 16 | click-help-colors==0.9.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 17 | click==8.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 18 | colorama==0.4.6 ; python_full_version >= "3.8.1" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") 19 | cookiecutter==2.1.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 20 | cryptography==41.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 21 | dill==0.3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" 22 | distlib==0.3.6 ; python_full_version >= "3.8.1" and python_version < "4.0" 23 | distro==1.8.0 ; python_full_version >= "3.8.1" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2") 24 | docker==6.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 25 | enrich==1.2.7 ; python_full_version >= "3.8.1" and python_version < "4.0" 26 | filelock==3.12.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 27 | flake8==6.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 28 | identify==2.5.24 ; python_full_version >= "3.8.1" and python_version < "4.0" 29 | idna==3.4 ; python_full_version >= "3.8.1" and python_version < "4.0" 30 | importlib-resources==5.12.0 ; python_full_version >= "3.8.1" and python_version < "3.9" 31 | isort==5.12.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 32 | jinja2-time==0.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 33 | jinja2==3.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" 34 | jsonschema==4.17.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 35 | lazy-object-proxy==1.9.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 36 | markdown-it-py==2.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 37 | markupsafe==2.1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 38 | mccabe==0.7.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 39 | mdurl==0.1.2 ; python_full_version >= "3.8.1" and python_version < "4.0" 40 | molecule-docker==2.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 41 | molecule==4.0.4 ; python_full_version >= "3.8.1" and python_version < "4.0" 42 | molecule[docker]==4.0.4 ; python_full_version >= "3.8.1" and python_version < "4.0" 43 | mypy-extensions==1.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 44 | nodeenv==1.8.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 45 | packaging==23.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 46 | pathspec==0.11.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 47 | pkgutil-resolve-name==1.3.10 ; python_full_version >= "3.8.1" and python_version < "3.9" 48 | platformdirs==3.5.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 49 | pluggy==1.0.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 50 | pre-commit==2.21.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 51 | pycodestyle==2.10.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 52 | pycparser==2.21 ; python_full_version >= "3.8.1" and python_version < "4.0" 53 | pyflakes==3.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 54 | pygments==2.15.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 55 | pylint==2.17.4 ; python_full_version >= "3.8.1" and python_version < "4.0" 56 | pyrsistent==0.19.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 57 | python-dateutil==2.8.2 ; python_full_version >= "3.8.1" and python_version < "4.0" 58 | python-slugify==8.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 59 | pywin32==306 ; python_full_version >= "3.8.1" and python_version < "4.0" and sys_platform == "win32" 60 | pyyaml==6.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 61 | requests==2.31.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 62 | resolvelib==0.8.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 63 | rich==13.4.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 64 | ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.12" and python_full_version >= "3.8.1" 65 | ruamel-yaml==0.17.31 ; python_full_version >= "3.8.1" and python_version < "4.0" 66 | selinux==0.2.1 ; python_full_version >= "3.8.1" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2") 67 | setuptools==67.8.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 68 | six==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 69 | subprocess-tee==0.4.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 70 | text-unidecode==1.3 ; python_full_version >= "3.8.1" and python_version < "4.0" 71 | tomli==2.0.1 ; python_full_version >= "3.8.1" and python_full_version < "3.11.0a7" 72 | tomlkit==0.11.8 ; python_full_version >= "3.8.1" and python_version < "4.0" 73 | typing-extensions==4.6.3 ; python_full_version >= "3.8.1" and python_version < "3.11" 74 | urllib3==2.0.2 ; python_full_version >= "3.8.1" and python_version < "4.0" 75 | virtualenv==20.23.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 76 | wcmatch==8.4.1 ; python_full_version >= "3.8.1" and python_version < "4.0" 77 | websocket-client==1.5.2 ; python_full_version >= "3.8.1" and python_version < "4.0" 78 | wrapt==1.15.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 79 | yamllint==1.32.0 ; python_full_version >= "3.8.1" and python_version < "4.0" 80 | zipp==3.15.0 ; python_full_version >= "3.8.1" and python_version < "3.9" 81 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for ansible-netdata 3 | 4 | # Adds installer flag to enable auto updates 5 | # https://docs.netdata.cloud/packaging/installer/update/#auto-update 6 | netdata_auto_updates: 7 | enabled: true 8 | day: "*" 9 | hour: 6 10 | minute: 0 11 | user: root 12 | weekday: "*" 13 | # WARNING: when you set this variable to 'true' and are migrating from an old version 14 | # of Netdata (< v1.11.0) then the cron will be removed from your system. 15 | # You will then need to launch the netdata installer manually to make sure 16 | # netdata installs the cron by itself with: `./netdata-installer.sh --auto-update` 17 | clean_legacy_cron: true 18 | 19 | # The IP address and port to listen to. This is a space separated list of 20 | # IPv4 or IPv6 address and ports. The default will bind to all IP addresses 21 | netdata_bind_to: 22 | - "*" 23 | 24 | # Defines if Netdata should be configured 25 | netdata_config: true 26 | 27 | # Defines location of Netdata configuration file 28 | netdata_config_file: /etc/netdata/netdata.conf 29 | 30 | # Defines the Git repo to pull down for installs 31 | netdata_git_repo: https://github.com/netdata/netdata.git 32 | 33 | # Defines the version tag to clone for installation 34 | netdata_git_version_tag: v1.25.0 35 | 36 | # Defines whether Netdata health is enabled 37 | netdata_health_enabled: true 38 | 39 | # Defines if Netdata health alarms should be configured 40 | netdata_alarm_configure: false 41 | 42 | # Defines location of Netdata health_alarm_notify.conf 43 | netdata_alarm_config_file: /etc/netdata/health_alarm_notify.conf 44 | 45 | # Define configuration for health_alarm_notify.conf. 46 | # Example: 47 | # netdata_health_alarm_notify_configs: 48 | # https_proxy: http://localhost:3128 49 | # SLACK_WEBHOOK_URL: https://hooks.slack.com/... 50 | netdata_alarm_notify_configs: {} 51 | 52 | # Define custom_sender function in health_alarm_notify.conf 53 | # only the body of the function should be in there 54 | # Exemple: netdata_custom_sender_function: "curl -X POST url" 55 | # netdata_custom_sender_function: "" 56 | 57 | # Defines path to alarm-notify.sh 58 | netdata_health_alarm_script: /usr/libexec/netdata/plugins.d/alarm-notify.sh 59 | 60 | # Defines how often a critical alarm is repeated 61 | netdata_default_repeat_critical: never 62 | 63 | # Defines how often a warning alarm is repeated 64 | netdata_default_repeat_warning: never 65 | 66 | # The host name displayed in netdata 67 | netdata_hostname: "{{ ansible_hostname }}" 68 | # The number of entries the netdata daemon will by default keep in memory 69 | # for each chart dimension. 70 | netdata_history: 3996 71 | 72 | # Defines Netdata installer script 73 | netdata_installer: ./netdata-installer.sh 74 | 75 | # Defines Netdata requirements installer script 76 | netdata_requirements_installer: packaging/installer/install-required-packages.sh 77 | 78 | # Defines Netdata requirements installer options (if we want morre complete requirements) 79 | netdata_requirements_installer_options: 80 | - "--non-interactive" 81 | - netdata 82 | 83 | # When set to save netdata will save its round robin database on exit and 84 | # load it on startup. When set to map the cache files will be updated in 85 | # real time (check man mmap - do not set this on systems with heavy load or 86 | # slow disks - the disks will continuously sync the in-memory database of 87 | # netdata). When set to ram the round robin database will be temporary and it 88 | # will be lost when netdata exits. 89 | netdata_memory_mode: save 90 | 91 | # This variables are only used if netdata_memory_mode is set to dbengine 92 | netdata_dbengine_page_cache_size: 32 93 | netdata_dbengine_multihost_disk_space: 256 94 | 95 | # Defines the mode the web-server will run in 96 | # static-threaded is a web server with a fix (configured number of threads) 97 | # single-threaded is a simple web server running with a single thread 98 | # multi-threaded is a web server that spawns a thread for each client connection 99 | # none will disable the web-server and the API 100 | netdata_web_mode: multi-threaded 101 | 102 | # The default port to listen for web clients. 103 | netdata_default_port: 19999 104 | 105 | netdata_epel_setup: false 106 | netdata_epel_repo_url: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm" 107 | netdata_epel_repo_gpg_key_url: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}" 108 | netdata_epel_repofile_path: "/etc/yum.repos.d/epel.repo" 109 | netdata_centos6_install_okay: false 110 | 111 | # Defines if Netdata host should be enabled as a registry 112 | # https://github.com/firehol/netdata/wiki/mynetdata-menu-item 113 | netdata_registry_enabled: false 114 | 115 | # https://registry.my-netdata.io 116 | # https://github.com/firehol/netdata/wiki/mynetdata-menu-item 117 | netdata_registry_to_announce: https://registry.my-netdata.io 118 | 119 | # Defines directory to store install source from Git repo 120 | netdata_source_dir: /usr/local/src/netdata 121 | 122 | # Defines if Netdata streaming should be configured 123 | # https://github.com/firehol/netdata/wiki/Monitoring-ephemeral-nodes 124 | netdata_stream_enabled: false 125 | 126 | # Defines location of Netdata stream configuration file 127 | netdata_stream_config_file: /etc/netdata/stream.conf 128 | 129 | # Defines Netdata API Keys (must be generated with command uuidgen) 130 | netdata_stream_api_key: 11111111-2222-3333-4444-555555555555 131 | netdata_stream_send_api_key: "{{ netdata_stream_api_key }}" 132 | netdata_stream_receive_api_key: "{{ netdata_stream_api_key }}" 133 | 134 | # Defines Netdata master node and port (e.g. 127.0.0.1:19999) 135 | netdata_stream_master_node: "" 136 | 137 | # Defines whether the netdata node is acting as a proxy 138 | netdata_stream_proxy: false 139 | 140 | # Defines client ssl configuration 141 | # netdata_client_ssl_options: 142 | # ssl skip certificate verification: "yes" 143 | # CAfile: /etc/ssl/certs/ca-certificates.crt 144 | netdata_client_ssl_options: {} 145 | 146 | # Defines if Netdata should be uninstalled 147 | # Caution: This does not prompt for uninstall as the original script 148 | # was intended. 149 | # https://github.com/firehol/netdata/wiki/Installation#uninstalling-netdata 150 | netdata_uninstall: false 151 | 152 | # Defines the Netdata uninstaller script 153 | netdata_uninstaller: ./netdata-uninstaller.sh 154 | 155 | # Defines if Netdata should be updated 156 | # Not the same as auto_updates 157 | netdata_update: false 158 | # Force the update. Sometimes the update script skips installing new plugins. 159 | netdata_update_force: false 160 | 161 | # The frequency in seconds, for data collection 162 | netdata_update_every: 1 163 | 164 | # Defines Netdata update script 165 | netdata_updater: ./netdata-updater.sh 166 | 167 | # Defines Netdata user info 168 | netdata_user_info: 169 | group: netdata 170 | user: netdata 171 | 172 | # Defines if Netdata should store data in a backend 173 | netdata_configure_archive: false 174 | 175 | # Defines Netdata backend for long term datastorage 176 | # https://github.com/firehol/netdata/wiki/netdata-backends 177 | # Defines if the Netdata backend is enabled 178 | netdata_archive_enabled: "yes" 179 | 180 | # Defines the backend type as one of 181 | # graphite | opentsdb | json 182 | netdata_archive_type: "opentsdb" 183 | 184 | # Defines the host(s) and ports netdata should send data to 185 | netdata_archive_destination: 186 | - localhost 187 | # - "{{ vip }}:5252" 188 | 189 | # Defines how to send the archive data as one of 190 | # as collected, average, sum 191 | netdata_archive_data_source: "average" 192 | 193 | # Defines a prefix for the archive data 194 | netdata_archive_prefix: "netdata" 195 | 196 | # Defines how often to send archive data in seconds 197 | netdata_archive_update: 1 198 | 199 | # Defines the number of update intervals 200 | # after which dataloss occurs 201 | netdata_archive_buffer_on_failures: 30 202 | 203 | # Defines when to timeout sending to a backend in milliseconds 204 | netdata_archive_timeout: 20000 205 | 206 | # Defines if Netdata sends metric names or UUIDs 207 | netdata_archive_send_names: true 208 | 209 | # Defines the flood protection period 210 | netdata_errors_flood_protection_period: 1200 211 | 212 | # Defines when to trigger flood proctection 213 | netdata_errors_to_trigger_flood_protection: 200 214 | -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. 2 | 3 | [[package]] 4 | name = "ansible" 5 | version = "6.6.0" 6 | description = "Radically simple IT automation" 7 | optional = false 8 | python-versions = ">=3.8" 9 | files = [ 10 | {file = "ansible-6.6.0-py3-none-any.whl", hash = "sha256:3c6812e9af1c243b8a9e5fc6cba618449813765e609caae39a757452e2818dee"}, 11 | {file = "ansible-6.6.0.tar.gz", hash = "sha256:e1b940a8d4f412123ede3c14b25cb99c3c8a4d535fd040aabf8e4fb7b0e4f092"}, 12 | ] 13 | 14 | [package.dependencies] 15 | ansible-core = ">=2.13.6,<2.14.0" 16 | 17 | [[package]] 18 | name = "ansible-compat" 19 | version = "3.0.2" 20 | description = "Ansible compatibility goodies" 21 | optional = false 22 | python-versions = ">=3.8" 23 | files = [ 24 | {file = "ansible-compat-3.0.2.tar.gz", hash = "sha256:a10ea191f9efe08590ff64cb46a31af1f8142c08618db1a4bc827ed257c68230"}, 25 | {file = "ansible_compat-3.0.2-py3-none-any.whl", hash = "sha256:1c051fb7cedd7a067c5b8fca86e76109bff69cdd31115dea751e3166296a73da"}, 26 | ] 27 | 28 | [package.dependencies] 29 | ansible-core = ">=2.12" 30 | jsonschema = ">=4.6.0" 31 | packaging = "*" 32 | PyYAML = "*" 33 | subprocess-tee = ">=0.4.1" 34 | 35 | [package.extras] 36 | docs = ["argparse-manpage", "black", "mkdocs-ansible[lock] (>=0.1.2)"] 37 | test = ["coverage", "pip-tools", "pytest (>=7.2.0)", "pytest-mock", "pytest-plus"] 38 | 39 | [[package]] 40 | name = "ansible-core" 41 | version = "2.13.10" 42 | description = "Radically simple IT automation" 43 | optional = false 44 | python-versions = ">=3.8" 45 | files = [ 46 | {file = "ansible-core-2.13.10.tar.gz", hash = "sha256:d4b40a4aaf860def6c2c9e8ad5201f8683e3e7d7d8e21463c6d59ea4f8b12df7"}, 47 | {file = "ansible_core-2.13.10-py3-none-any.whl", hash = "sha256:dcd72152b1ce56387712d8727d75c65e61a8f6265b19105c9d0649f0777ccb67"}, 48 | ] 49 | 50 | [package.dependencies] 51 | cryptography = "*" 52 | jinja2 = ">=3.0.0" 53 | packaging = "*" 54 | PyYAML = ">=5.1" 55 | resolvelib = ">=0.5.3,<0.9.0" 56 | 57 | [[package]] 58 | name = "ansible-lint" 59 | version = "6.8.7" 60 | description = "Checks playbooks for practices and behavior that could potentially be improved" 61 | optional = false 62 | python-versions = ">=3.8" 63 | files = [ 64 | {file = "ansible-lint-6.8.7.tar.gz", hash = "sha256:de3de4e57cd54e17c1ec3a0b4a21d4811838e77d67b56cbe8f91107f2a434432"}, 65 | {file = "ansible_lint-6.8.7-py3-none-any.whl", hash = "sha256:1824afce2a5619b47c19f6377a0d85b4f39e80b1fc1857191d6a908d68396bf9"}, 66 | ] 67 | 68 | [package.dependencies] 69 | ansible-compat = ">=2.2.5" 70 | ansible-core = [ 71 | {version = ">=2.12.0,<2.14.0", markers = "python_version < \"3.9\""}, 72 | {version = ">=2.12.0", markers = "python_version >= \"3.9\""}, 73 | ] 74 | black = ">=22.1.0" 75 | filelock = "*" 76 | jsonschema = ">=4.17.0" 77 | packaging = "*" 78 | pyyaml = ">=5.4.1" 79 | rich = ">=12.6.0" 80 | "ruamel.yaml" = ">=0.17.21,<0.18" 81 | wcmatch = ">=8.4.1" 82 | yamllint = ">=1.28.0" 83 | 84 | [package.extras] 85 | docs = ["myst-parser (>=0.16.1)", "pipdeptree (>=2.2.1)", "sphinx (>=4.4.0)", "sphinx-ansible-theme (>=0.9.1)", "sphinx-rtd-theme (>=1.0.0,<2.0.0)", "sphinxcontrib-apidoc (>=0.3.0)", "sphinxcontrib-programoutput2 (>=2.0a1)"] 86 | test = ["black", "coverage-enable-subprocess", "coverage[toml] (>=6.4.4)", "flake8", "flake8-future-annotations", "flaky (>=3.7.0)", "mypy", "psutil", "pylint", "pytest (>=7.2.0)", "pytest-mock", "pytest-plus (>=0.2)", "pytest-xdist (>=2.1.0)"] 87 | 88 | [[package]] 89 | name = "arrow" 90 | version = "1.2.3" 91 | description = "Better dates & times for Python" 92 | optional = false 93 | python-versions = ">=3.6" 94 | files = [ 95 | {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, 96 | {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, 97 | ] 98 | 99 | [package.dependencies] 100 | python-dateutil = ">=2.7.0" 101 | 102 | [[package]] 103 | name = "astroid" 104 | version = "2.15.5" 105 | description = "An abstract syntax tree for Python with inference support." 106 | optional = false 107 | python-versions = ">=3.7.2" 108 | files = [ 109 | {file = "astroid-2.15.5-py3-none-any.whl", hash = "sha256:078e5212f9885fa85fbb0cf0101978a336190aadea6e13305409d099f71b2324"}, 110 | {file = "astroid-2.15.5.tar.gz", hash = "sha256:1039262575027b441137ab4a62a793a9b43defb42c32d5670f38686207cd780f"}, 111 | ] 112 | 113 | [package.dependencies] 114 | lazy-object-proxy = ">=1.4.0" 115 | typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} 116 | wrapt = [ 117 | {version = ">=1.11,<2", markers = "python_version < \"3.11\""}, 118 | {version = ">=1.14,<2", markers = "python_version >= \"3.11\""}, 119 | ] 120 | 121 | [[package]] 122 | name = "attrs" 123 | version = "23.1.0" 124 | description = "Classes Without Boilerplate" 125 | optional = false 126 | python-versions = ">=3.7" 127 | files = [ 128 | {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"}, 129 | {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"}, 130 | ] 131 | 132 | [package.extras] 133 | cov = ["attrs[tests]", "coverage[toml] (>=5.3)"] 134 | dev = ["attrs[docs,tests]", "pre-commit"] 135 | docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"] 136 | tests = ["attrs[tests-no-zope]", "zope-interface"] 137 | tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] 138 | 139 | [[package]] 140 | name = "binaryornot" 141 | version = "0.4.4" 142 | description = "Ultra-lightweight pure Python package to check if a file is binary or text." 143 | optional = false 144 | python-versions = "*" 145 | files = [ 146 | {file = "binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"}, 147 | {file = "binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061"}, 148 | ] 149 | 150 | [package.dependencies] 151 | chardet = ">=3.0.2" 152 | 153 | [[package]] 154 | name = "black" 155 | version = "22.12.0" 156 | description = "The uncompromising code formatter." 157 | optional = false 158 | python-versions = ">=3.7" 159 | files = [ 160 | {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, 161 | {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, 162 | {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, 163 | {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, 164 | {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, 165 | {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, 166 | {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, 167 | {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, 168 | {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, 169 | {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, 170 | {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, 171 | {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, 172 | ] 173 | 174 | [package.dependencies] 175 | click = ">=8.0.0" 176 | mypy-extensions = ">=0.4.3" 177 | pathspec = ">=0.9.0" 178 | platformdirs = ">=2" 179 | tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} 180 | typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} 181 | 182 | [package.extras] 183 | colorama = ["colorama (>=0.4.3)"] 184 | d = ["aiohttp (>=3.7.4)"] 185 | jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] 186 | uvloop = ["uvloop (>=0.15.2)"] 187 | 188 | [[package]] 189 | name = "bracex" 190 | version = "2.3.post1" 191 | description = "Bash style brace expander." 192 | optional = false 193 | python-versions = ">=3.7" 194 | files = [ 195 | {file = "bracex-2.3.post1-py3-none-any.whl", hash = "sha256:351b7f20d56fb9ea91f9b9e9e7664db466eb234188c175fd943f8f755c807e73"}, 196 | {file = "bracex-2.3.post1.tar.gz", hash = "sha256:e7b23fc8b2cd06d3dec0692baabecb249dda94e06a617901ff03a6c56fd71693"}, 197 | ] 198 | 199 | [[package]] 200 | name = "certifi" 201 | version = "2023.7.22" 202 | description = "Python package for providing Mozilla's CA Bundle." 203 | optional = false 204 | python-versions = ">=3.6" 205 | files = [ 206 | {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, 207 | {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, 208 | ] 209 | 210 | [[package]] 211 | name = "cffi" 212 | version = "1.15.1" 213 | description = "Foreign Function Interface for Python calling C code." 214 | optional = false 215 | python-versions = "*" 216 | files = [ 217 | {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, 218 | {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, 219 | {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, 220 | {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, 221 | {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, 222 | {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, 223 | {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, 224 | {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, 225 | {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, 226 | {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, 227 | {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, 228 | {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, 229 | {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, 230 | {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, 231 | {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, 232 | {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, 233 | {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, 234 | {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, 235 | {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, 236 | {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, 237 | {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, 238 | {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, 239 | {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, 240 | {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, 241 | {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, 242 | {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, 243 | {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, 244 | {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, 245 | {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, 246 | {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, 247 | {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, 248 | {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, 249 | {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, 250 | {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, 251 | {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, 252 | {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, 253 | {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, 254 | {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, 255 | {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, 256 | {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, 257 | {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, 258 | {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, 259 | {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, 260 | {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, 261 | {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, 262 | {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, 263 | {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, 264 | {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, 265 | {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, 266 | {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, 267 | {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, 268 | {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, 269 | {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, 270 | {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, 271 | {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, 272 | {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, 273 | {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, 274 | {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, 275 | {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, 276 | {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, 277 | {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, 278 | {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, 279 | {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, 280 | {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, 281 | ] 282 | 283 | [package.dependencies] 284 | pycparser = "*" 285 | 286 | [[package]] 287 | name = "cfgv" 288 | version = "3.3.1" 289 | description = "Validate configuration and produce human readable error messages." 290 | optional = false 291 | python-versions = ">=3.6.1" 292 | files = [ 293 | {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, 294 | {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, 295 | ] 296 | 297 | [[package]] 298 | name = "chardet" 299 | version = "5.1.0" 300 | description = "Universal encoding detector for Python 3" 301 | optional = false 302 | python-versions = ">=3.7" 303 | files = [ 304 | {file = "chardet-5.1.0-py3-none-any.whl", hash = "sha256:362777fb014af596ad31334fde1e8c327dfdb076e1960d1694662d46a6917ab9"}, 305 | {file = "chardet-5.1.0.tar.gz", hash = "sha256:0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5"}, 306 | ] 307 | 308 | [[package]] 309 | name = "charset-normalizer" 310 | version = "3.1.0" 311 | description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." 312 | optional = false 313 | python-versions = ">=3.7.0" 314 | files = [ 315 | {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, 316 | {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, 317 | {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, 318 | {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, 319 | {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, 320 | {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, 321 | {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, 322 | {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, 323 | {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, 324 | {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, 325 | {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, 326 | {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, 327 | {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, 328 | {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, 329 | {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, 330 | {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, 331 | {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, 332 | {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, 333 | {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, 334 | {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, 335 | {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, 336 | {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, 337 | {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, 338 | {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, 339 | {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, 340 | {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, 341 | {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, 342 | {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, 343 | {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, 344 | {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, 345 | {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, 346 | {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, 347 | {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, 348 | {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, 349 | {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, 350 | {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, 351 | {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, 352 | {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, 353 | {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, 354 | {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, 355 | {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, 356 | {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, 357 | {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, 358 | {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, 359 | {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, 360 | {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, 361 | {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, 362 | {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, 363 | {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, 364 | {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, 365 | {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, 366 | {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, 367 | {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, 368 | {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, 369 | {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, 370 | {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, 371 | {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, 372 | {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, 373 | {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, 374 | {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, 375 | {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, 376 | {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, 377 | {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, 378 | {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, 379 | {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, 380 | {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, 381 | {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, 382 | {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, 383 | {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, 384 | {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, 385 | {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, 386 | {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, 387 | {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, 388 | {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, 389 | {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, 390 | ] 391 | 392 | [[package]] 393 | name = "click" 394 | version = "8.1.3" 395 | description = "Composable command line interface toolkit" 396 | optional = false 397 | python-versions = ">=3.7" 398 | files = [ 399 | {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, 400 | {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, 401 | ] 402 | 403 | [package.dependencies] 404 | colorama = {version = "*", markers = "platform_system == \"Windows\""} 405 | 406 | [[package]] 407 | name = "click-help-colors" 408 | version = "0.9.1" 409 | description = "Colorization of help messages in Click" 410 | optional = false 411 | python-versions = "*" 412 | files = [ 413 | {file = "click-help-colors-0.9.1.tar.gz", hash = "sha256:78cbcf30cfa81c5fc2a52f49220121e1a8190cd19197d9245997605d3405824d"}, 414 | {file = "click_help_colors-0.9.1-py3-none-any.whl", hash = "sha256:25a6bd22d8abbc72c18a416a1cf21ab65b6120bee48e9637829666cbad22d51d"}, 415 | ] 416 | 417 | [package.dependencies] 418 | click = ">=7.0,<9" 419 | 420 | [package.extras] 421 | dev = ["pytest"] 422 | 423 | [[package]] 424 | name = "colorama" 425 | version = "0.4.6" 426 | description = "Cross-platform colored terminal text." 427 | optional = false 428 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" 429 | files = [ 430 | {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, 431 | {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, 432 | ] 433 | 434 | [[package]] 435 | name = "cookiecutter" 436 | version = "2.1.1" 437 | description = "A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template." 438 | optional = false 439 | python-versions = ">=3.7" 440 | files = [ 441 | {file = "cookiecutter-2.1.1-py2.py3-none-any.whl", hash = "sha256:9f3ab027cec4f70916e28f03470bdb41e637a3ad354b4d65c765d93aad160022"}, 442 | {file = "cookiecutter-2.1.1.tar.gz", hash = "sha256:f3982be8d9c53dac1261864013fdec7f83afd2e42ede6f6dd069c5e149c540d5"}, 443 | ] 444 | 445 | [package.dependencies] 446 | binaryornot = ">=0.4.4" 447 | click = ">=7.0,<9.0.0" 448 | Jinja2 = ">=2.7,<4.0.0" 449 | jinja2-time = ">=0.2.0" 450 | python-slugify = ">=4.0.0" 451 | pyyaml = ">=5.3.1" 452 | requests = ">=2.23.0" 453 | 454 | [[package]] 455 | name = "cryptography" 456 | version = "42.0.2" 457 | description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." 458 | optional = false 459 | python-versions = ">=3.7" 460 | files = [ 461 | {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:701171f825dcab90969596ce2af253143b93b08f1a716d4b2a9d2db5084ef7be"}, 462 | {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:61321672b3ac7aade25c40449ccedbc6db72c7f5f0fdf34def5e2f8b51ca530d"}, 463 | {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea2c3ffb662fec8bbbfce5602e2c159ff097a4631d96235fcf0fb00e59e3ece4"}, 464 | {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b15c678f27d66d247132cbf13df2f75255627bcc9b6a570f7d2fd08e8c081d2"}, 465 | {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8e88bb9eafbf6a4014d55fb222e7360eef53e613215085e65a13290577394529"}, 466 | {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a047682d324ba56e61b7ea7c7299d51e61fd3bca7dad2ccc39b72bd0118d60a1"}, 467 | {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:36d4b7c4be6411f58f60d9ce555a73df8406d484ba12a63549c88bd64f7967f1"}, 468 | {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a00aee5d1b6c20620161984f8ab2ab69134466c51f58c052c11b076715e72929"}, 469 | {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b97fe7d7991c25e6a31e5d5e795986b18fbbb3107b873d5f3ae6dc9a103278e9"}, 470 | {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5fa82a26f92871eca593b53359c12ad7949772462f887c35edaf36f87953c0e2"}, 471 | {file = "cryptography-42.0.2-cp37-abi3-win32.whl", hash = "sha256:4b063d3413f853e056161eb0c7724822a9740ad3caa24b8424d776cebf98e7ee"}, 472 | {file = "cryptography-42.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:841ec8af7a8491ac76ec5a9522226e287187a3107e12b7d686ad354bb78facee"}, 473 | {file = "cryptography-42.0.2-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:55d1580e2d7e17f45d19d3b12098e352f3a37fe86d380bf45846ef257054b242"}, 474 | {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28cb2c41f131a5758d6ba6a0504150d644054fd9f3203a1e8e8d7ac3aea7f73a"}, 475 | {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9097a208875fc7bbeb1286d0125d90bdfed961f61f214d3f5be62cd4ed8a446"}, 476 | {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:44c95c0e96b3cb628e8452ec060413a49002a247b2b9938989e23a2c8291fc90"}, 477 | {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2f9f14185962e6a04ab32d1abe34eae8a9001569ee4edb64d2304bf0d65c53f3"}, 478 | {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:09a77e5b2e8ca732a19a90c5bca2d124621a1edb5438c5daa2d2738bfeb02589"}, 479 | {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad28cff53f60d99a928dfcf1e861e0b2ceb2bc1f08a074fdd601b314e1cc9e0a"}, 480 | {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:130c0f77022b2b9c99d8cebcdd834d81705f61c68e91ddd614ce74c657f8b3ea"}, 481 | {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa3dec4ba8fb6e662770b74f62f1a0c7d4e37e25b58b2bf2c1be4c95372b4a33"}, 482 | {file = "cryptography-42.0.2-cp39-abi3-win32.whl", hash = "sha256:3dbd37e14ce795b4af61b89b037d4bc157f2cb23e676fa16932185a04dfbf635"}, 483 | {file = "cryptography-42.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:8a06641fb07d4e8f6c7dda4fc3f8871d327803ab6542e33831c7ccfdcb4d0ad6"}, 484 | {file = "cryptography-42.0.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:087887e55e0b9c8724cf05361357875adb5c20dec27e5816b653492980d20380"}, 485 | {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a7ef8dd0bf2e1d0a27042b231a3baac6883cdd5557036f5e8df7139255feaac6"}, 486 | {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4383b47f45b14459cab66048d384614019965ba6c1a1a141f11b5a551cace1b2"}, 487 | {file = "cryptography-42.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:fbeb725c9dc799a574518109336acccaf1303c30d45c075c665c0793c2f79a7f"}, 488 | {file = "cryptography-42.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:320948ab49883557a256eab46149df79435a22d2fefd6a66fe6946f1b9d9d008"}, 489 | {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5ef9bc3d046ce83c4bbf4c25e1e0547b9c441c01d30922d812e887dc5f125c12"}, 490 | {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:52ed9ebf8ac602385126c9a2fe951db36f2cb0c2538d22971487f89d0de4065a"}, 491 | {file = "cryptography-42.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:141e2aa5ba100d3788c0ad7919b288f89d1fe015878b9659b307c9ef867d3a65"}, 492 | {file = "cryptography-42.0.2.tar.gz", hash = "sha256:e0ec52ba3c7f1b7d813cd52649a5b3ef1fc0d433219dc8c93827c57eab6cf888"}, 493 | ] 494 | 495 | [package.dependencies] 496 | cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} 497 | 498 | [package.extras] 499 | docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] 500 | docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] 501 | nox = ["nox"] 502 | pep8test = ["check-sdist", "click", "mypy", "ruff"] 503 | sdist = ["build"] 504 | ssh = ["bcrypt (>=3.1.5)"] 505 | test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] 506 | test-randomorder = ["pytest-randomly"] 507 | 508 | [[package]] 509 | name = "dill" 510 | version = "0.3.6" 511 | description = "serialize all of python" 512 | optional = false 513 | python-versions = ">=3.7" 514 | files = [ 515 | {file = "dill-0.3.6-py3-none-any.whl", hash = "sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0"}, 516 | {file = "dill-0.3.6.tar.gz", hash = "sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"}, 517 | ] 518 | 519 | [package.extras] 520 | graph = ["objgraph (>=1.7.2)"] 521 | 522 | [[package]] 523 | name = "distlib" 524 | version = "0.3.6" 525 | description = "Distribution utilities" 526 | optional = false 527 | python-versions = "*" 528 | files = [ 529 | {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, 530 | {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, 531 | ] 532 | 533 | [[package]] 534 | name = "distro" 535 | version = "1.8.0" 536 | description = "Distro - an OS platform information API" 537 | optional = false 538 | python-versions = ">=3.6" 539 | files = [ 540 | {file = "distro-1.8.0-py3-none-any.whl", hash = "sha256:99522ca3e365cac527b44bde033f64c6945d90eb9f769703caaec52b09bbd3ff"}, 541 | {file = "distro-1.8.0.tar.gz", hash = "sha256:02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8"}, 542 | ] 543 | 544 | [[package]] 545 | name = "docker" 546 | version = "6.1.3" 547 | description = "A Python library for the Docker Engine API." 548 | optional = false 549 | python-versions = ">=3.7" 550 | files = [ 551 | {file = "docker-6.1.3-py3-none-any.whl", hash = "sha256:aecd2277b8bf8e506e484f6ab7aec39abe0038e29fa4a6d3ba86c3fe01844ed9"}, 552 | {file = "docker-6.1.3.tar.gz", hash = "sha256:aa6d17830045ba5ef0168d5eaa34d37beeb113948c413affe1d5991fc11f9a20"}, 553 | ] 554 | 555 | [package.dependencies] 556 | packaging = ">=14.0" 557 | pywin32 = {version = ">=304", markers = "sys_platform == \"win32\""} 558 | requests = ">=2.26.0" 559 | urllib3 = ">=1.26.0" 560 | websocket-client = ">=0.32.0" 561 | 562 | [package.extras] 563 | ssh = ["paramiko (>=2.4.3)"] 564 | 565 | [[package]] 566 | name = "enrich" 567 | version = "1.2.7" 568 | description = "enrich" 569 | optional = false 570 | python-versions = ">=3.6" 571 | files = [ 572 | {file = "enrich-1.2.7-py3-none-any.whl", hash = "sha256:f29b2c8c124b4dbd7c975ab5c3568f6c7a47938ea3b7d2106c8a3bd346545e4f"}, 573 | {file = "enrich-1.2.7.tar.gz", hash = "sha256:0a2ab0d2931dff8947012602d1234d2a3ee002d9a355b5d70be6bf5466008893"}, 574 | ] 575 | 576 | [package.dependencies] 577 | rich = ">=9.5.1" 578 | 579 | [package.extras] 580 | test = ["mock (>=3.0.5)", "pytest (>=5.4.0)", "pytest-cov (>=2.7.1)", "pytest-mock (>=3.3.1)", "pytest-plus", "pytest-xdist (>=1.29.0)"] 581 | 582 | [[package]] 583 | name = "filelock" 584 | version = "3.12.0" 585 | description = "A platform independent file lock." 586 | optional = false 587 | python-versions = ">=3.7" 588 | files = [ 589 | {file = "filelock-3.12.0-py3-none-any.whl", hash = "sha256:ad98852315c2ab702aeb628412cbf7e95b7ce8c3bf9565670b4eaecf1db370a9"}, 590 | {file = "filelock-3.12.0.tar.gz", hash = "sha256:fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"}, 591 | ] 592 | 593 | [package.extras] 594 | docs = ["furo (>=2023.3.27)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] 595 | testing = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] 596 | 597 | [[package]] 598 | name = "flake8" 599 | version = "6.0.0" 600 | description = "the modular source code checker: pep8 pyflakes and co" 601 | optional = false 602 | python-versions = ">=3.8.1" 603 | files = [ 604 | {file = "flake8-6.0.0-py2.py3-none-any.whl", hash = "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7"}, 605 | {file = "flake8-6.0.0.tar.gz", hash = "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181"}, 606 | ] 607 | 608 | [package.dependencies] 609 | mccabe = ">=0.7.0,<0.8.0" 610 | pycodestyle = ">=2.10.0,<2.11.0" 611 | pyflakes = ">=3.0.0,<3.1.0" 612 | 613 | [[package]] 614 | name = "identify" 615 | version = "2.5.24" 616 | description = "File identification library for Python" 617 | optional = false 618 | python-versions = ">=3.7" 619 | files = [ 620 | {file = "identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"}, 621 | {file = "identify-2.5.24.tar.gz", hash = "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4"}, 622 | ] 623 | 624 | [package.extras] 625 | license = ["ukkonen"] 626 | 627 | [[package]] 628 | name = "idna" 629 | version = "3.4" 630 | description = "Internationalized Domain Names in Applications (IDNA)" 631 | optional = false 632 | python-versions = ">=3.5" 633 | files = [ 634 | {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, 635 | {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, 636 | ] 637 | 638 | [[package]] 639 | name = "importlib-resources" 640 | version = "5.12.0" 641 | description = "Read resources from Python packages" 642 | optional = false 643 | python-versions = ">=3.7" 644 | files = [ 645 | {file = "importlib_resources-5.12.0-py3-none-any.whl", hash = "sha256:7b1deeebbf351c7578e09bf2f63fa2ce8b5ffec296e0d349139d43cca061a81a"}, 646 | {file = "importlib_resources-5.12.0.tar.gz", hash = "sha256:4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6"}, 647 | ] 648 | 649 | [package.dependencies] 650 | zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} 651 | 652 | [package.extras] 653 | docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] 654 | testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] 655 | 656 | [[package]] 657 | name = "isort" 658 | version = "5.12.0" 659 | description = "A Python utility / library to sort Python imports." 660 | optional = false 661 | python-versions = ">=3.8.0" 662 | files = [ 663 | {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, 664 | {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, 665 | ] 666 | 667 | [package.extras] 668 | colors = ["colorama (>=0.4.3)"] 669 | pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] 670 | plugins = ["setuptools"] 671 | requirements-deprecated-finder = ["pip-api", "pipreqs"] 672 | 673 | [[package]] 674 | name = "jinja2" 675 | version = "3.1.3" 676 | description = "A very fast and expressive template engine." 677 | optional = false 678 | python-versions = ">=3.7" 679 | files = [ 680 | {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, 681 | {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, 682 | ] 683 | 684 | [package.dependencies] 685 | MarkupSafe = ">=2.0" 686 | 687 | [package.extras] 688 | i18n = ["Babel (>=2.7)"] 689 | 690 | [[package]] 691 | name = "jinja2-time" 692 | version = "0.2.0" 693 | description = "Jinja2 Extension for Dates and Times" 694 | optional = false 695 | python-versions = "*" 696 | files = [ 697 | {file = "jinja2-time-0.2.0.tar.gz", hash = "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40"}, 698 | {file = "jinja2_time-0.2.0-py2.py3-none-any.whl", hash = "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"}, 699 | ] 700 | 701 | [package.dependencies] 702 | arrow = "*" 703 | jinja2 = "*" 704 | 705 | [[package]] 706 | name = "jsonschema" 707 | version = "4.17.3" 708 | description = "An implementation of JSON Schema validation for Python" 709 | optional = false 710 | python-versions = ">=3.7" 711 | files = [ 712 | {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, 713 | {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, 714 | ] 715 | 716 | [package.dependencies] 717 | attrs = ">=17.4.0" 718 | importlib-resources = {version = ">=1.4.0", markers = "python_version < \"3.9\""} 719 | pkgutil-resolve-name = {version = ">=1.3.10", markers = "python_version < \"3.9\""} 720 | pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" 721 | 722 | [package.extras] 723 | format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] 724 | format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] 725 | 726 | [[package]] 727 | name = "lazy-object-proxy" 728 | version = "1.9.0" 729 | description = "A fast and thorough lazy object proxy." 730 | optional = false 731 | python-versions = ">=3.7" 732 | files = [ 733 | {file = "lazy-object-proxy-1.9.0.tar.gz", hash = "sha256:659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"}, 734 | {file = "lazy_object_proxy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b40387277b0ed2d0602b8293b94d7257e17d1479e257b4de114ea11a8cb7f2d7"}, 735 | {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8c6cfb338b133fbdbc5cfaa10fe3c6aeea827db80c978dbd13bc9dd8526b7d4"}, 736 | {file = "lazy_object_proxy-1.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:721532711daa7db0d8b779b0bb0318fa87af1c10d7fe5e52ef30f8eff254d0cd"}, 737 | {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66a3de4a3ec06cd8af3f61b8e1ec67614fbb7c995d02fa224813cb7afefee701"}, 738 | {file = "lazy_object_proxy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1aa3de4088c89a1b69f8ec0dcc169aa725b0ff017899ac568fe44ddc1396df46"}, 739 | {file = "lazy_object_proxy-1.9.0-cp310-cp310-win32.whl", hash = "sha256:f0705c376533ed2a9e5e97aacdbfe04cecd71e0aa84c7c0595d02ef93b6e4455"}, 740 | {file = "lazy_object_proxy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea806fd4c37bf7e7ad82537b0757999264d5f70c45468447bb2b91afdbe73a6e"}, 741 | {file = "lazy_object_proxy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:946d27deaff6cf8452ed0dba83ba38839a87f4f7a9732e8f9fd4107b21e6ff07"}, 742 | {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79a31b086e7e68b24b99b23d57723ef7e2c6d81ed21007b6281ebcd1688acb0a"}, 743 | {file = "lazy_object_proxy-1.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f699ac1c768270c9e384e4cbd268d6e67aebcfae6cd623b4d7c3bfde5a35db59"}, 744 | {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfb38f9ffb53b942f2b5954e0f610f1e721ccebe9cce9025a38c8ccf4a5183a4"}, 745 | {file = "lazy_object_proxy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:189bbd5d41ae7a498397287c408617fe5c48633e7755287b21d741f7db2706a9"}, 746 | {file = "lazy_object_proxy-1.9.0-cp311-cp311-win32.whl", hash = "sha256:81fc4d08b062b535d95c9ea70dbe8a335c45c04029878e62d744bdced5141586"}, 747 | {file = "lazy_object_proxy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:f2457189d8257dd41ae9b434ba33298aec198e30adf2dcdaaa3a28b9994f6adb"}, 748 | {file = "lazy_object_proxy-1.9.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d9e25ef10a39e8afe59a5c348a4dbf29b4868ab76269f81ce1674494e2565a6e"}, 749 | {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cbf9b082426036e19c6924a9ce90c740a9861e2bdc27a4834fd0a910742ac1e8"}, 750 | {file = "lazy_object_proxy-1.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f5fa4a61ce2438267163891961cfd5e32ec97a2c444e5b842d574251ade27d2"}, 751 | {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8fa02eaab317b1e9e03f69aab1f91e120e7899b392c4fc19807a8278a07a97e8"}, 752 | {file = "lazy_object_proxy-1.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e7c21c95cae3c05c14aafffe2865bbd5e377cfc1348c4f7751d9dc9a48ca4bda"}, 753 | {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win32.whl", hash = "sha256:f12ad7126ae0c98d601a7ee504c1122bcef553d1d5e0c3bfa77b16b3968d2734"}, 754 | {file = "lazy_object_proxy-1.9.0-cp37-cp37m-win_amd64.whl", hash = "sha256:edd20c5a55acb67c7ed471fa2b5fb66cb17f61430b7a6b9c3b4a1e40293b1671"}, 755 | {file = "lazy_object_proxy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0daa332786cf3bb49e10dc6a17a52f6a8f9601b4cf5c295a4f85854d61de63"}, 756 | {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cd077f3d04a58e83d04b20e334f678c2b0ff9879b9375ed107d5d07ff160171"}, 757 | {file = "lazy_object_proxy-1.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c94ea760b3ce47d1855a30984c78327500493d396eac4dfd8bd82041b22be"}, 758 | {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:212774e4dfa851e74d393a2370871e174d7ff0ebc980907723bb67d25c8a7c30"}, 759 | {file = "lazy_object_proxy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0117049dd1d5635bbff65444496c90e0baa48ea405125c088e93d9cf4525b11"}, 760 | {file = "lazy_object_proxy-1.9.0-cp38-cp38-win32.whl", hash = "sha256:0a891e4e41b54fd5b8313b96399f8b0e173bbbfc03c7631f01efbe29bb0bcf82"}, 761 | {file = "lazy_object_proxy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:9990d8e71b9f6488e91ad25f322898c136b008d87bf852ff65391b004da5e17b"}, 762 | {file = "lazy_object_proxy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9e7551208b2aded9c1447453ee366f1c4070602b3d932ace044715d89666899b"}, 763 | {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f83ac4d83ef0ab017683d715ed356e30dd48a93746309c8f3517e1287523ef4"}, 764 | {file = "lazy_object_proxy-1.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7322c3d6f1766d4ef1e51a465f47955f1e8123caee67dd641e67d539a534d006"}, 765 | {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:18b78ec83edbbeb69efdc0e9c1cb41a3b1b1ed11ddd8ded602464c3fc6020494"}, 766 | {file = "lazy_object_proxy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:09763491ce220c0299688940f8dc2c5d05fd1f45af1e42e636b2e8b2303e4382"}, 767 | {file = "lazy_object_proxy-1.9.0-cp39-cp39-win32.whl", hash = "sha256:9090d8e53235aa280fc9239a86ae3ea8ac58eff66a705fa6aa2ec4968b95c821"}, 768 | {file = "lazy_object_proxy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:db1c1722726f47e10e0b5fdbf15ac3b8adb58c091d12b3ab713965795036985f"}, 769 | ] 770 | 771 | [[package]] 772 | name = "markdown-it-py" 773 | version = "2.2.0" 774 | description = "Python port of markdown-it. Markdown parsing, done right!" 775 | optional = false 776 | python-versions = ">=3.7" 777 | files = [ 778 | {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, 779 | {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, 780 | ] 781 | 782 | [package.dependencies] 783 | mdurl = ">=0.1,<1.0" 784 | 785 | [package.extras] 786 | benchmarking = ["psutil", "pytest", "pytest-benchmark"] 787 | code-style = ["pre-commit (>=3.0,<4.0)"] 788 | compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] 789 | linkify = ["linkify-it-py (>=1,<3)"] 790 | plugins = ["mdit-py-plugins"] 791 | profiling = ["gprof2dot"] 792 | rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] 793 | testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] 794 | 795 | [[package]] 796 | name = "markupsafe" 797 | version = "2.1.3" 798 | description = "Safely add untrusted strings to HTML/XML markup." 799 | optional = false 800 | python-versions = ">=3.7" 801 | files = [ 802 | {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, 803 | {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, 804 | {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, 805 | {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, 806 | {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, 807 | {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, 808 | {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, 809 | {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, 810 | {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, 811 | {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, 812 | {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, 813 | {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, 814 | {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, 815 | {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, 816 | {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, 817 | {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, 818 | {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, 819 | {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, 820 | {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, 821 | {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, 822 | {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, 823 | {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, 824 | {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, 825 | {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, 826 | {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, 827 | {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, 828 | {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, 829 | {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, 830 | {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, 831 | {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, 832 | {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, 833 | {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, 834 | {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, 835 | {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, 836 | {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, 837 | {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, 838 | {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, 839 | {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, 840 | {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, 841 | {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, 842 | {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, 843 | {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, 844 | {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, 845 | {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, 846 | {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, 847 | {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, 848 | {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, 849 | {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, 850 | {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, 851 | {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, 852 | {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, 853 | {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, 854 | {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, 855 | {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, 856 | {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, 857 | {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, 858 | {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, 859 | {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, 860 | {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, 861 | {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, 862 | ] 863 | 864 | [[package]] 865 | name = "mccabe" 866 | version = "0.7.0" 867 | description = "McCabe checker, plugin for flake8" 868 | optional = false 869 | python-versions = ">=3.6" 870 | files = [ 871 | {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, 872 | {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, 873 | ] 874 | 875 | [[package]] 876 | name = "mdurl" 877 | version = "0.1.2" 878 | description = "Markdown URL utilities" 879 | optional = false 880 | python-versions = ">=3.7" 881 | files = [ 882 | {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, 883 | {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, 884 | ] 885 | 886 | [[package]] 887 | name = "molecule" 888 | version = "4.0.4" 889 | description = "Molecule aids in the development and testing of Ansible roles" 890 | optional = false 891 | python-versions = ">=3.8" 892 | files = [ 893 | {file = "molecule-4.0.4-py3-none-any.whl", hash = "sha256:437a0829c3273f542e0db09516ae743607e6a2eda4d8cbdfb407edda3e0facb2"}, 894 | {file = "molecule-4.0.4.tar.gz", hash = "sha256:aab00c1ba62a42d77edd1a51528dfbb46abca70df7c7147fda0925ee4fe7deda"}, 895 | ] 896 | 897 | [package.dependencies] 898 | ansible-compat = ">=2.2.0" 899 | click = ">=8.0,<9" 900 | click-help-colors = ">=0.9" 901 | cookiecutter = ">=1.7.3" 902 | enrich = ">=1.2.7" 903 | Jinja2 = ">=2.11.3" 904 | jsonschema = ">=4.9.1" 905 | molecule-docker = {version = ">=1.0.0", optional = true, markers = "extra == \"docker\""} 906 | packaging = "*" 907 | pluggy = ">=0.7.1,<2.0" 908 | PyYAML = ">=5.1" 909 | rich = ">=9.5.1" 910 | 911 | [package.extras] 912 | docker = ["molecule-docker (>=1.0.0)"] 913 | docs = ["Sphinx (>=5.0.0,<6.0.0)", "ansible-core (>=2.12.0)", "jinja2 (<3.2.0)", "simplejson (>=3.17.2)", "sphinx-ansible-theme (>=0.8.0,<0.10.0)", "sphinx-notfound-page (>=0.7.1)"] 914 | lint = ["check-jsonschema (>=0.18.3)", "flake8 (>=3.8.4)", "jsonschema (>=4.16.0)", "pre-commit (>=2.10.1)", "yamllint"] 915 | podman = ["molecule-podman (>=1.0.1)"] 916 | test = ["ansi2html (>=1.6.0)", "coverage (>=6.2)", "filelock", "pexpect (>=4.8.0,<5)", "pytest (>=6.1.2)", "pytest-cov (>=2.10.1)", "pytest-html (>=3.0.0)", "pytest-mock (>=3.3.1)", "pytest-plus (>=0.2)", "pytest-testinfra (>=6.1.0)", "pytest-xdist (>=2.1.0)"] 917 | windows = ["pywinrm"] 918 | 919 | [[package]] 920 | name = "molecule-docker" 921 | version = "2.1.0" 922 | description = "Molecule aids in the development and testing of Ansible roles" 923 | optional = false 924 | python-versions = ">=3.8" 925 | files = [ 926 | {file = "molecule-docker-2.1.0.tar.gz", hash = "sha256:195b97673cbc2335cfa6810816de5cbf807507bf350a9d16ca98b224b1647145"}, 927 | {file = "molecule_docker-2.1.0-py3-none-any.whl", hash = "sha256:d439b075789be700b6594ed73f3254e2a25ed61dcf312d80ab6e718d13bf150e"}, 928 | ] 929 | 930 | [package.dependencies] 931 | docker = ">=4.3.1" 932 | molecule = ">=4.0.0" 933 | requests = "*" 934 | selinux = {version = "*", markers = "sys_platform == \"linux\" or sys_platform == \"linux2\""} 935 | 936 | [package.extras] 937 | docs = ["Sphinx", "simplejson", "sphinx-ansible-theme (>=0.2.2)"] 938 | lint = ["pre-commit (>=1.21.0)"] 939 | test = ["molecule[test]"] 940 | 941 | [[package]] 942 | name = "mypy-extensions" 943 | version = "1.0.0" 944 | description = "Type system extensions for programs checked with the mypy type checker." 945 | optional = false 946 | python-versions = ">=3.5" 947 | files = [ 948 | {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, 949 | {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, 950 | ] 951 | 952 | [[package]] 953 | name = "nodeenv" 954 | version = "1.8.0" 955 | description = "Node.js virtual environment builder" 956 | optional = false 957 | python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" 958 | files = [ 959 | {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, 960 | {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, 961 | ] 962 | 963 | [package.dependencies] 964 | setuptools = "*" 965 | 966 | [[package]] 967 | name = "packaging" 968 | version = "23.1" 969 | description = "Core utilities for Python packages" 970 | optional = false 971 | python-versions = ">=3.7" 972 | files = [ 973 | {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, 974 | {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, 975 | ] 976 | 977 | [[package]] 978 | name = "pathspec" 979 | version = "0.11.1" 980 | description = "Utility library for gitignore style pattern matching of file paths." 981 | optional = false 982 | python-versions = ">=3.7" 983 | files = [ 984 | {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, 985 | {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, 986 | ] 987 | 988 | [[package]] 989 | name = "pkgutil-resolve-name" 990 | version = "1.3.10" 991 | description = "Resolve a name to an object." 992 | optional = false 993 | python-versions = ">=3.6" 994 | files = [ 995 | {file = "pkgutil_resolve_name-1.3.10-py3-none-any.whl", hash = "sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"}, 996 | {file = "pkgutil_resolve_name-1.3.10.tar.gz", hash = "sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174"}, 997 | ] 998 | 999 | [[package]] 1000 | name = "platformdirs" 1001 | version = "3.5.1" 1002 | description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." 1003 | optional = false 1004 | python-versions = ">=3.7" 1005 | files = [ 1006 | {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, 1007 | {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, 1008 | ] 1009 | 1010 | [package.extras] 1011 | docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] 1012 | test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] 1013 | 1014 | [[package]] 1015 | name = "pluggy" 1016 | version = "1.0.0" 1017 | description = "plugin and hook calling mechanisms for python" 1018 | optional = false 1019 | python-versions = ">=3.6" 1020 | files = [ 1021 | {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, 1022 | {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, 1023 | ] 1024 | 1025 | [package.extras] 1026 | dev = ["pre-commit", "tox"] 1027 | testing = ["pytest", "pytest-benchmark"] 1028 | 1029 | [[package]] 1030 | name = "pre-commit" 1031 | version = "2.21.0" 1032 | description = "A framework for managing and maintaining multi-language pre-commit hooks." 1033 | optional = false 1034 | python-versions = ">=3.7" 1035 | files = [ 1036 | {file = "pre_commit-2.21.0-py2.py3-none-any.whl", hash = "sha256:e2f91727039fc39a92f58a588a25b87f936de6567eed4f0e673e0507edc75bad"}, 1037 | {file = "pre_commit-2.21.0.tar.gz", hash = "sha256:31ef31af7e474a8d8995027fefdfcf509b5c913ff31f2015b4ec4beb26a6f658"}, 1038 | ] 1039 | 1040 | [package.dependencies] 1041 | cfgv = ">=2.0.0" 1042 | identify = ">=1.0.0" 1043 | nodeenv = ">=0.11.1" 1044 | pyyaml = ">=5.1" 1045 | virtualenv = ">=20.10.0" 1046 | 1047 | [[package]] 1048 | name = "pycodestyle" 1049 | version = "2.10.0" 1050 | description = "Python style guide checker" 1051 | optional = false 1052 | python-versions = ">=3.6" 1053 | files = [ 1054 | {file = "pycodestyle-2.10.0-py2.py3-none-any.whl", hash = "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610"}, 1055 | {file = "pycodestyle-2.10.0.tar.gz", hash = "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053"}, 1056 | ] 1057 | 1058 | [[package]] 1059 | name = "pycparser" 1060 | version = "2.21" 1061 | description = "C parser in Python" 1062 | optional = false 1063 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 1064 | files = [ 1065 | {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, 1066 | {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, 1067 | ] 1068 | 1069 | [[package]] 1070 | name = "pyflakes" 1071 | version = "3.0.1" 1072 | description = "passive checker of Python programs" 1073 | optional = false 1074 | python-versions = ">=3.6" 1075 | files = [ 1076 | {file = "pyflakes-3.0.1-py2.py3-none-any.whl", hash = "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf"}, 1077 | {file = "pyflakes-3.0.1.tar.gz", hash = "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"}, 1078 | ] 1079 | 1080 | [[package]] 1081 | name = "pygments" 1082 | version = "2.15.1" 1083 | description = "Pygments is a syntax highlighting package written in Python." 1084 | optional = false 1085 | python-versions = ">=3.7" 1086 | files = [ 1087 | {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, 1088 | {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, 1089 | ] 1090 | 1091 | [package.extras] 1092 | plugins = ["importlib-metadata"] 1093 | 1094 | [[package]] 1095 | name = "pylint" 1096 | version = "2.17.4" 1097 | description = "python code static checker" 1098 | optional = false 1099 | python-versions = ">=3.7.2" 1100 | files = [ 1101 | {file = "pylint-2.17.4-py3-none-any.whl", hash = "sha256:7a1145fb08c251bdb5cca11739722ce64a63db479283d10ce718b2460e54123c"}, 1102 | {file = "pylint-2.17.4.tar.gz", hash = "sha256:5dcf1d9e19f41f38e4e85d10f511e5b9c35e1aa74251bf95cdd8cb23584e2db1"}, 1103 | ] 1104 | 1105 | [package.dependencies] 1106 | astroid = ">=2.15.4,<=2.17.0-dev0" 1107 | colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} 1108 | dill = [ 1109 | {version = ">=0.2", markers = "python_version < \"3.11\""}, 1110 | {version = ">=0.3.6", markers = "python_version >= \"3.11\""}, 1111 | ] 1112 | isort = ">=4.2.5,<6" 1113 | mccabe = ">=0.6,<0.8" 1114 | platformdirs = ">=2.2.0" 1115 | tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} 1116 | tomlkit = ">=0.10.1" 1117 | typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} 1118 | 1119 | [package.extras] 1120 | spelling = ["pyenchant (>=3.2,<4.0)"] 1121 | testutils = ["gitpython (>3)"] 1122 | 1123 | [[package]] 1124 | name = "pyrsistent" 1125 | version = "0.19.3" 1126 | description = "Persistent/Functional/Immutable data structures" 1127 | optional = false 1128 | python-versions = ">=3.7" 1129 | files = [ 1130 | {file = "pyrsistent-0.19.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:20460ac0ea439a3e79caa1dbd560344b64ed75e85d8703943e0b66c2a6150e4a"}, 1131 | {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c18264cb84b5e68e7085a43723f9e4c1fd1d935ab240ce02c0324a8e01ccb64"}, 1132 | {file = "pyrsistent-0.19.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b774f9288dda8d425adb6544e5903f1fb6c273ab3128a355c6b972b7df39dcf"}, 1133 | {file = "pyrsistent-0.19.3-cp310-cp310-win32.whl", hash = "sha256:5a474fb80f5e0d6c9394d8db0fc19e90fa540b82ee52dba7d246a7791712f74a"}, 1134 | {file = "pyrsistent-0.19.3-cp310-cp310-win_amd64.whl", hash = "sha256:49c32f216c17148695ca0e02a5c521e28a4ee6c5089f97e34fe24163113722da"}, 1135 | {file = "pyrsistent-0.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f0774bf48631f3a20471dd7c5989657b639fd2d285b861237ea9e82c36a415a9"}, 1136 | {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab2204234c0ecd8b9368dbd6a53e83c3d4f3cab10ecaf6d0e772f456c442393"}, 1137 | {file = "pyrsistent-0.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e42296a09e83028b3476f7073fcb69ffebac0e66dbbfd1bd847d61f74db30f19"}, 1138 | {file = "pyrsistent-0.19.3-cp311-cp311-win32.whl", hash = "sha256:64220c429e42a7150f4bfd280f6f4bb2850f95956bde93c6fda1b70507af6ef3"}, 1139 | {file = "pyrsistent-0.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:016ad1afadf318eb7911baa24b049909f7f3bb2c5b1ed7b6a8f21db21ea3faa8"}, 1140 | {file = "pyrsistent-0.19.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c4db1bd596fefd66b296a3d5d943c94f4fac5bcd13e99bffe2ba6a759d959a28"}, 1141 | {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aeda827381f5e5d65cced3024126529ddc4289d944f75e090572c77ceb19adbf"}, 1142 | {file = "pyrsistent-0.19.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42ac0b2f44607eb92ae88609eda931a4f0dfa03038c44c772e07f43e738bcac9"}, 1143 | {file = "pyrsistent-0.19.3-cp37-cp37m-win32.whl", hash = "sha256:e8f2b814a3dc6225964fa03d8582c6e0b6650d68a232df41e3cc1b66a5d2f8d1"}, 1144 | {file = "pyrsistent-0.19.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9bb60a40a0ab9aba40a59f68214eed5a29c6274c83b2cc206a359c4a89fa41b"}, 1145 | {file = "pyrsistent-0.19.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a2471f3f8693101975b1ff85ffd19bb7ca7dd7c38f8a81701f67d6b4f97b87d8"}, 1146 | {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc5d149f31706762c1f8bda2e8c4f8fead6e80312e3692619a75301d3dbb819a"}, 1147 | {file = "pyrsistent-0.19.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3311cb4237a341aa52ab8448c27e3a9931e2ee09561ad150ba94e4cfd3fc888c"}, 1148 | {file = "pyrsistent-0.19.3-cp38-cp38-win32.whl", hash = "sha256:f0e7c4b2f77593871e918be000b96c8107da48444d57005b6a6bc61fb4331b2c"}, 1149 | {file = "pyrsistent-0.19.3-cp38-cp38-win_amd64.whl", hash = "sha256:c147257a92374fde8498491f53ffa8f4822cd70c0d85037e09028e478cababb7"}, 1150 | {file = "pyrsistent-0.19.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b735e538f74ec31378f5a1e3886a26d2ca6351106b4dfde376a26fc32a044edc"}, 1151 | {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99abb85579e2165bd8522f0c0138864da97847875ecbd45f3e7e2af569bfc6f2"}, 1152 | {file = "pyrsistent-0.19.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a8cb235fa6d3fd7aae6a4f1429bbb1fec1577d978098da1252f0489937786f3"}, 1153 | {file = "pyrsistent-0.19.3-cp39-cp39-win32.whl", hash = "sha256:c74bed51f9b41c48366a286395c67f4e894374306b197e62810e0fdaf2364da2"}, 1154 | {file = "pyrsistent-0.19.3-cp39-cp39-win_amd64.whl", hash = "sha256:878433581fc23e906d947a6814336eee031a00e6defba224234169ae3d3d6a98"}, 1155 | {file = "pyrsistent-0.19.3-py3-none-any.whl", hash = "sha256:ccf0d6bd208f8111179f0c26fdf84ed7c3891982f2edaeae7422575f47e66b64"}, 1156 | {file = "pyrsistent-0.19.3.tar.gz", hash = "sha256:1a2994773706bbb4995c31a97bc94f1418314923bd1048c6d964837040376440"}, 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "python-dateutil" 1161 | version = "2.8.2" 1162 | description = "Extensions to the standard Python datetime module" 1163 | optional = false 1164 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 1165 | files = [ 1166 | {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, 1167 | {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, 1168 | ] 1169 | 1170 | [package.dependencies] 1171 | six = ">=1.5" 1172 | 1173 | [[package]] 1174 | name = "python-slugify" 1175 | version = "8.0.1" 1176 | description = "A Python slugify application that also handles Unicode" 1177 | optional = false 1178 | python-versions = ">=3.7" 1179 | files = [ 1180 | {file = "python-slugify-8.0.1.tar.gz", hash = "sha256:ce0d46ddb668b3be82f4ed5e503dbc33dd815d83e2eb6824211310d3fb172a27"}, 1181 | {file = "python_slugify-8.0.1-py2.py3-none-any.whl", hash = "sha256:70ca6ea68fe63ecc8fa4fcf00ae651fc8a5d02d93dcd12ae6d4fc7ca46c4d395"}, 1182 | ] 1183 | 1184 | [package.dependencies] 1185 | text-unidecode = ">=1.3" 1186 | 1187 | [package.extras] 1188 | unidecode = ["Unidecode (>=1.1.1)"] 1189 | 1190 | [[package]] 1191 | name = "pywin32" 1192 | version = "306" 1193 | description = "Python for Window Extensions" 1194 | optional = false 1195 | python-versions = "*" 1196 | files = [ 1197 | {file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"}, 1198 | {file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"}, 1199 | {file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"}, 1200 | {file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"}, 1201 | {file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"}, 1202 | {file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"}, 1203 | {file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"}, 1204 | {file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"}, 1205 | {file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"}, 1206 | {file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"}, 1207 | {file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"}, 1208 | {file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"}, 1209 | {file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"}, 1210 | {file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"}, 1211 | ] 1212 | 1213 | [[package]] 1214 | name = "pyyaml" 1215 | version = "6.0" 1216 | description = "YAML parser and emitter for Python" 1217 | optional = false 1218 | python-versions = ">=3.6" 1219 | files = [ 1220 | {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, 1221 | {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, 1222 | {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, 1223 | {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, 1224 | {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, 1225 | {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, 1226 | {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, 1227 | {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, 1228 | {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, 1229 | {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, 1230 | {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, 1231 | {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, 1232 | {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, 1233 | {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, 1234 | {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, 1235 | {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, 1236 | {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, 1237 | {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, 1238 | {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, 1239 | {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, 1240 | {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, 1241 | {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, 1242 | {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, 1243 | {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, 1244 | {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, 1245 | {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, 1246 | {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, 1247 | {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, 1248 | {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, 1249 | {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, 1250 | {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, 1251 | {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, 1252 | {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, 1253 | {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, 1254 | {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, 1255 | {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, 1256 | {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, 1257 | {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, 1258 | {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, 1259 | {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, 1260 | ] 1261 | 1262 | [[package]] 1263 | name = "requests" 1264 | version = "2.31.0" 1265 | description = "Python HTTP for Humans." 1266 | optional = false 1267 | python-versions = ">=3.7" 1268 | files = [ 1269 | {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, 1270 | {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, 1271 | ] 1272 | 1273 | [package.dependencies] 1274 | certifi = ">=2017.4.17" 1275 | charset-normalizer = ">=2,<4" 1276 | idna = ">=2.5,<4" 1277 | urllib3 = ">=1.21.1,<3" 1278 | 1279 | [package.extras] 1280 | socks = ["PySocks (>=1.5.6,!=1.5.7)"] 1281 | use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] 1282 | 1283 | [[package]] 1284 | name = "resolvelib" 1285 | version = "0.8.1" 1286 | description = "Resolve abstract dependencies into concrete ones" 1287 | optional = false 1288 | python-versions = "*" 1289 | files = [ 1290 | {file = "resolvelib-0.8.1-py2.py3-none-any.whl", hash = "sha256:d9b7907f055c3b3a2cfc56c914ffd940122915826ff5fb5b1de0c99778f4de98"}, 1291 | {file = "resolvelib-0.8.1.tar.gz", hash = "sha256:c6ea56732e9fb6fca1b2acc2ccc68a0b6b8c566d8f3e78e0443310ede61dbd37"}, 1292 | ] 1293 | 1294 | [package.extras] 1295 | examples = ["html5lib", "packaging", "pygraphviz", "requests"] 1296 | lint = ["black", "flake8", "isort", "mypy", "types-requests"] 1297 | release = ["build", "towncrier", "twine"] 1298 | test = ["commentjson", "packaging", "pytest"] 1299 | 1300 | [[package]] 1301 | name = "rich" 1302 | version = "13.4.1" 1303 | description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" 1304 | optional = false 1305 | python-versions = ">=3.7.0" 1306 | files = [ 1307 | {file = "rich-13.4.1-py3-none-any.whl", hash = "sha256:d204aadb50b936bf6b1a695385429d192bc1fdaf3e8b907e8e26f4c4e4b5bf75"}, 1308 | {file = "rich-13.4.1.tar.gz", hash = "sha256:76f6b65ea7e5c5d924ba80e322231d7cb5b5981aa60bfc1e694f1bc097fe6fe1"}, 1309 | ] 1310 | 1311 | [package.dependencies] 1312 | markdown-it-py = ">=2.2.0,<3.0.0" 1313 | pygments = ">=2.13.0,<3.0.0" 1314 | typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} 1315 | 1316 | [package.extras] 1317 | jupyter = ["ipywidgets (>=7.5.1,<9)"] 1318 | 1319 | [[package]] 1320 | name = "ruamel-yaml" 1321 | version = "0.17.31" 1322 | description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" 1323 | optional = false 1324 | python-versions = ">=3" 1325 | files = [ 1326 | {file = "ruamel.yaml-0.17.31-py3-none-any.whl", hash = "sha256:3cf153f0047ced526e723097ac615d3009371779432e304dbd5596b6f3a4c777"}, 1327 | {file = "ruamel.yaml-0.17.31.tar.gz", hash = "sha256:098ed1eb6d338a684891a72380277c1e6fc4d4ae0e120de9a447275056dda335"}, 1328 | ] 1329 | 1330 | [package.dependencies] 1331 | "ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.12\""} 1332 | 1333 | [package.extras] 1334 | docs = ["ryd"] 1335 | jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] 1336 | 1337 | [[package]] 1338 | name = "ruamel-yaml-clib" 1339 | version = "0.2.7" 1340 | description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" 1341 | optional = false 1342 | python-versions = ">=3.5" 1343 | files = [ 1344 | {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, 1345 | {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, 1346 | {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, 1347 | {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, 1348 | {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, 1349 | {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, 1350 | {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, 1351 | {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:1a6391a7cabb7641c32517539ca42cf84b87b667bad38b78d4d42dd23e957c81"}, 1352 | {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9c7617df90c1365638916b98cdd9be833d31d337dbcd722485597b43c4a215bf"}, 1353 | {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:41d0f1fa4c6830176eef5b276af04c89320ea616655d01327d5ce65e50575c94"}, 1354 | {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win32.whl", hash = "sha256:f6d3d39611ac2e4f62c3128a9eed45f19a6608670c5a2f4f07f24e8de3441d38"}, 1355 | {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:da538167284de58a52109a9b89b8f6a53ff8437dd6dc26d33b57bf6699153122"}, 1356 | {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:4b3a93bb9bc662fc1f99c5c3ea8e623d8b23ad22f861eb6fce9377ac07ad6072"}, 1357 | {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-macosx_12_0_arm64.whl", hash = "sha256:a234a20ae07e8469da311e182e70ef6b199d0fbeb6c6cc2901204dd87fb867e8"}, 1358 | {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:15910ef4f3e537eea7fe45f8a5d19997479940d9196f357152a09031c5be59f3"}, 1359 | {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:370445fd795706fd291ab00c9df38a0caed0f17a6fb46b0f607668ecb16ce763"}, 1360 | {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win32.whl", hash = "sha256:ecdf1a604009bd35c674b9225a8fa609e0282d9b896c03dd441a91e5f53b534e"}, 1361 | {file = "ruamel.yaml.clib-0.2.7-cp36-cp36m-win_amd64.whl", hash = "sha256:f34019dced51047d6f70cb9383b2ae2853b7fc4dce65129a5acd49f4f9256646"}, 1362 | {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aa261c29a5545adfef9296b7e33941f46aa5bbd21164228e833412af4c9c75f"}, 1363 | {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f01da5790e95815eb5a8a138508c01c758e5f5bc0ce4286c4f7028b8dd7ac3d0"}, 1364 | {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:40d030e2329ce5286d6b231b8726959ebbe0404c92f0a578c0e2482182e38282"}, 1365 | {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:c3ca1fbba4ae962521e5eb66d72998b51f0f4d0f608d3c0347a48e1af262efa7"}, 1366 | {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win32.whl", hash = "sha256:7bdb4c06b063f6fd55e472e201317a3bb6cdeeee5d5a38512ea5c01e1acbdd93"}, 1367 | {file = "ruamel.yaml.clib-0.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:be2a7ad8fd8f7442b24323d24ba0b56c51219513cfa45b9ada3b87b76c374d4b"}, 1368 | {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, 1369 | {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, 1370 | {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, 1371 | {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, 1372 | {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, 1373 | {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, 1374 | {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, 1375 | {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, 1376 | {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, 1377 | {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, 1378 | {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, 1379 | {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, 1380 | {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, 1381 | ] 1382 | 1383 | [[package]] 1384 | name = "selinux" 1385 | version = "0.2.1" 1386 | description = "shim selinux module" 1387 | optional = false 1388 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" 1389 | files = [ 1390 | {file = "selinux-0.2.1-py2.py3-none-any.whl", hash = "sha256:820adcf1b4451c9cc7759848797703263ba0eb6a4cad76d73548a9e0d57b7926"}, 1391 | {file = "selinux-0.2.1.tar.gz", hash = "sha256:d435f514e834e3fdc0941f6a29d086b80b2ea51b28112aee6254bd104ee42a74"}, 1392 | ] 1393 | 1394 | [package.dependencies] 1395 | distro = ">=1.3.0" 1396 | setuptools = ">=39.0" 1397 | 1398 | [[package]] 1399 | name = "setuptools" 1400 | version = "67.8.0" 1401 | description = "Easily download, build, install, upgrade, and uninstall Python packages" 1402 | optional = false 1403 | python-versions = ">=3.7" 1404 | files = [ 1405 | {file = "setuptools-67.8.0-py3-none-any.whl", hash = "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f"}, 1406 | {file = "setuptools-67.8.0.tar.gz", hash = "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102"}, 1407 | ] 1408 | 1409 | [package.extras] 1410 | docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] 1411 | testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] 1412 | testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] 1413 | 1414 | [[package]] 1415 | name = "six" 1416 | version = "1.16.0" 1417 | description = "Python 2 and 3 compatibility utilities" 1418 | optional = false 1419 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 1420 | files = [ 1421 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, 1422 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, 1423 | ] 1424 | 1425 | [[package]] 1426 | name = "subprocess-tee" 1427 | version = "0.4.1" 1428 | description = "subprocess-tee" 1429 | optional = false 1430 | python-versions = ">=3.8" 1431 | files = [ 1432 | {file = "subprocess-tee-0.4.1.tar.gz", hash = "sha256:b3c124993f8b88d1eb1c2fde0bc2069787eac720ba88771cba17e8c93324825d"}, 1433 | {file = "subprocess_tee-0.4.1-py3-none-any.whl", hash = "sha256:eca56973a1c1237093c2055b2731bcaab784683b83f22c76f26e4c5763402e28"}, 1434 | ] 1435 | 1436 | [package.extras] 1437 | test = ["enrich (>=1.2.6)", "molecule (>=3.4.0)", "pytest (>=6.2.5)", "pytest-cov (>=2.12.1)", "pytest-plus (>=0.2)", "pytest-xdist (>=2.3.0)"] 1438 | 1439 | [[package]] 1440 | name = "text-unidecode" 1441 | version = "1.3" 1442 | description = "The most basic Text::Unidecode port" 1443 | optional = false 1444 | python-versions = "*" 1445 | files = [ 1446 | {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, 1447 | {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, 1448 | ] 1449 | 1450 | [[package]] 1451 | name = "tomli" 1452 | version = "2.0.1" 1453 | description = "A lil' TOML parser" 1454 | optional = false 1455 | python-versions = ">=3.7" 1456 | files = [ 1457 | {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, 1458 | {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, 1459 | ] 1460 | 1461 | [[package]] 1462 | name = "tomlkit" 1463 | version = "0.11.8" 1464 | description = "Style preserving TOML library" 1465 | optional = false 1466 | python-versions = ">=3.7" 1467 | files = [ 1468 | {file = "tomlkit-0.11.8-py3-none-any.whl", hash = "sha256:8c726c4c202bdb148667835f68d68780b9a003a9ec34167b6c673b38eff2a171"}, 1469 | {file = "tomlkit-0.11.8.tar.gz", hash = "sha256:9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3"}, 1470 | ] 1471 | 1472 | [[package]] 1473 | name = "typing-extensions" 1474 | version = "4.6.3" 1475 | description = "Backported and Experimental Type Hints for Python 3.7+" 1476 | optional = false 1477 | python-versions = ">=3.7" 1478 | files = [ 1479 | {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, 1480 | {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, 1481 | ] 1482 | 1483 | [[package]] 1484 | name = "urllib3" 1485 | version = "2.0.2" 1486 | description = "HTTP library with thread-safe connection pooling, file post, and more." 1487 | optional = false 1488 | python-versions = ">=3.7" 1489 | files = [ 1490 | {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, 1491 | {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, 1492 | ] 1493 | 1494 | [package.extras] 1495 | brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] 1496 | secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] 1497 | socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] 1498 | zstd = ["zstandard (>=0.18.0)"] 1499 | 1500 | [[package]] 1501 | name = "virtualenv" 1502 | version = "20.23.0" 1503 | description = "Virtual Python Environment builder" 1504 | optional = false 1505 | python-versions = ">=3.7" 1506 | files = [ 1507 | {file = "virtualenv-20.23.0-py3-none-any.whl", hash = "sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e"}, 1508 | {file = "virtualenv-20.23.0.tar.gz", hash = "sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924"}, 1509 | ] 1510 | 1511 | [package.dependencies] 1512 | distlib = ">=0.3.6,<1" 1513 | filelock = ">=3.11,<4" 1514 | platformdirs = ">=3.2,<4" 1515 | 1516 | [package.extras] 1517 | docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] 1518 | test = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.7.1)", "time-machine (>=2.9)"] 1519 | 1520 | [[package]] 1521 | name = "wcmatch" 1522 | version = "8.4.1" 1523 | description = "Wildcard/glob file name matcher." 1524 | optional = false 1525 | python-versions = ">=3.7" 1526 | files = [ 1527 | {file = "wcmatch-8.4.1-py3-none-any.whl", hash = "sha256:3476cd107aba7b25ba1d59406938a47dc7eec6cfd0ad09ff77193f21a964dee7"}, 1528 | {file = "wcmatch-8.4.1.tar.gz", hash = "sha256:b1f042a899ea4c458b7321da1b5e3331e3e0ec781583434de1301946ceadb943"}, 1529 | ] 1530 | 1531 | [package.dependencies] 1532 | bracex = ">=2.1.1" 1533 | 1534 | [[package]] 1535 | name = "websocket-client" 1536 | version = "1.5.2" 1537 | description = "WebSocket client for Python with low level API options" 1538 | optional = false 1539 | python-versions = ">=3.7" 1540 | files = [ 1541 | {file = "websocket-client-1.5.2.tar.gz", hash = "sha256:c7d67c13b928645f259d9b847ab5b57fd2d127213ca41ebd880de1f553b7c23b"}, 1542 | {file = "websocket_client-1.5.2-py3-none-any.whl", hash = "sha256:f8c64e28cd700e7ba1f04350d66422b6833b82a796b525a51e740b8cc8dab4b1"}, 1543 | ] 1544 | 1545 | [package.extras] 1546 | docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] 1547 | optional = ["python-socks", "wsaccel"] 1548 | test = ["websockets"] 1549 | 1550 | [[package]] 1551 | name = "wrapt" 1552 | version = "1.15.0" 1553 | description = "Module for decorators, wrappers and monkey patching." 1554 | optional = false 1555 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 1556 | files = [ 1557 | {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, 1558 | {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, 1559 | {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, 1560 | {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, 1561 | {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, 1562 | {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, 1563 | {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, 1564 | {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, 1565 | {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, 1566 | {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, 1567 | {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, 1568 | {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, 1569 | {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, 1570 | {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, 1571 | {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, 1572 | {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, 1573 | {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, 1574 | {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, 1575 | {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, 1576 | {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, 1577 | {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, 1578 | {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, 1579 | {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, 1580 | {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, 1581 | {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, 1582 | {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, 1583 | {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, 1584 | {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, 1585 | {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, 1586 | {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, 1587 | {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, 1588 | {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, 1589 | {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, 1590 | {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, 1591 | {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, 1592 | {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, 1593 | {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, 1594 | {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, 1595 | {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, 1596 | {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, 1597 | {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, 1598 | {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, 1599 | {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, 1600 | {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, 1601 | {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, 1602 | {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, 1603 | {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, 1604 | {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, 1605 | {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, 1606 | {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, 1607 | {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, 1608 | {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, 1609 | {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, 1610 | {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, 1611 | {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, 1612 | {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, 1613 | {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, 1614 | {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, 1615 | {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, 1616 | {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, 1617 | {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, 1618 | {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, 1619 | {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, 1620 | {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, 1621 | {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, 1622 | {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, 1623 | {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, 1624 | {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, 1625 | {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, 1626 | {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, 1627 | {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, 1628 | {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, 1629 | {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, 1630 | {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, 1631 | {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, 1632 | ] 1633 | 1634 | [[package]] 1635 | name = "yamllint" 1636 | version = "1.32.0" 1637 | description = "A linter for YAML files." 1638 | optional = false 1639 | python-versions = ">=3.7" 1640 | files = [ 1641 | {file = "yamllint-1.32.0-py3-none-any.whl", hash = "sha256:d97a66e48da820829d96077d76b8dfbe6c6140f106e558dae87e81ac4e6b30b7"}, 1642 | {file = "yamllint-1.32.0.tar.gz", hash = "sha256:d01dde008c65de5b235188ab3110bebc59d18e5c65fc8a58267cd211cd9df34a"}, 1643 | ] 1644 | 1645 | [package.dependencies] 1646 | pathspec = ">=0.5.3" 1647 | pyyaml = "*" 1648 | 1649 | [package.extras] 1650 | dev = ["doc8", "flake8", "flake8-import-order", "rstcheck[sphinx]", "sphinx"] 1651 | 1652 | [[package]] 1653 | name = "zipp" 1654 | version = "3.15.0" 1655 | description = "Backport of pathlib-compatible object wrapper for zip files" 1656 | optional = false 1657 | python-versions = ">=3.7" 1658 | files = [ 1659 | {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, 1660 | {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, 1661 | ] 1662 | 1663 | [package.extras] 1664 | docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] 1665 | testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] 1666 | 1667 | [metadata] 1668 | lock-version = "2.0" 1669 | python-versions = ">=3.8.1,<4.0" 1670 | content-hash = "ab0acfd5419b82f13b0e403fefd47ec4f253627091d893f71d9d78ea50d8eb84" 1671 | --------------------------------------------------------------------------------