├── CHANGELOG.md ├── files └── .gitkeep ├── templates ├── .gitkeep └── etc │ ├── default │ └── docker.j2 │ ├── docker │ ├── daemon.json.j2 │ └── daemon.json.j2.orig │ └── yum.repos.d │ └── docker.repo.j2 ├── .ansible-lint ├── requirements.yml ├── vars └── main.yml ├── CONTRIBUTORS.md ├── .flake8 ├── molecule ├── ansible.old-galaxy.cfg ├── shared │ ├── prepare.yml │ ├── verify.yml │ └── converge.yml ├── centos7 │ ├── verify.yml │ ├── INSTALL.rst │ ├── molecule.yml │ └── Dockerfile.j2 ├── centos8 │ ├── verify.yml │ ├── INSTALL.rst │ ├── molecule.yml │ └── Dockerfile.j2 ├── debian9 │ ├── verify.yml │ ├── INSTALL.rst │ ├── molecule.yml │ └── Dockerfile.j2 ├── debian10 │ ├── 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 ├── handlers └── main.yml ├── playbook.yml ├── tasks ├── service.yml ├── users.yml ├── images.yml ├── config_docker.yml ├── main.yml ├── alpine.yml ├── redhat.yml ├── debian.yml └── set_facts.yml ├── CONTRIBUTING.md ├── .gitignore ├── .github ├── workflows │ ├── release-drafter.yml │ ├── release-galaxy.yml │ └── test-molecule.yml ├── settings.yml ├── config.yml ├── stale.yml └── release-drafter.yml ├── meta └── main.yml ├── .yamllint ├── pyproject.toml ├── LICENSE.md ├── .pre-commit-config.yaml ├── requirements.txt ├── README.md ├── CODE_OF_CONDUCT.md ├── defaults └── main.yml ├── requirements-dev.txt └── poetry.lock /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /files/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /templates/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.ansible-lint: -------------------------------------------------------------------------------- 1 | skip_list: 2 | - 'role-name' 3 | -------------------------------------------------------------------------------- /requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | collections: [] 3 | roles: [] 4 | -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # vars file for ansible-docker 3 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | Larry Smith Jr. - mrlesmithjr@gmail.com 2 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | exclude = .venv/ 3 | max-line-length = 88 4 | -------------------------------------------------------------------------------- /templates/etc/default/docker.j2: -------------------------------------------------------------------------------- 1 | DOCKER_OPTS="--config-file=/etc/docker/daemon.json" 2 | -------------------------------------------------------------------------------- /molecule/ansible.old-galaxy.cfg: -------------------------------------------------------------------------------- 1 | [galaxy] 2 | server = https://old-galaxy.ansible.com/ 3 | -------------------------------------------------------------------------------- /templates/etc/docker/daemon.json.j2: -------------------------------------------------------------------------------- 1 | {% if docker_opts is defined %} 2 | {{ docker_opts|to_nice_json }} 3 | {% endif %} 4 | -------------------------------------------------------------------------------- /handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for ansible-docker 3 | - name: restart docker 4 | service: 5 | name: docker 6 | state: restarted 7 | become: true 8 | -------------------------------------------------------------------------------- /playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Example Playbook 3 | hosts: all 4 | tasks: 5 | - name: Include ansible-docker 6 | include_role: 7 | name: ansible-docker 8 | -------------------------------------------------------------------------------- /tasks/service.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: service | Ensuring Docker Service Is Started And Enabled On Boot 3 | service: 4 | name: docker 5 | state: started 6 | enabled: true 7 | become: true 8 | -------------------------------------------------------------------------------- /molecule/shared/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | tasks: 4 | - name: Update Apt Cache 5 | apt: 6 | update_cache: true 7 | become: true 8 | when: ansible_os_family == "Debian" 9 | -------------------------------------------------------------------------------- /tasks/users.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: users | adding docker users (for use without sudo) 3 | user: 4 | name: "{{ item }}" 5 | append: yes 6 | groups: docker 7 | become: true 8 | loop: "{{ docker_users }}" 9 | -------------------------------------------------------------------------------- /molecule/centos7/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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /molecule/centos8/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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /molecule/debian9/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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /tasks/images.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: images | ensuring docker images are present 3 | docker_image: 4 | name: "{{ item['name'] }}" 5 | state: "{{ item['state'] }}" 6 | become: true 7 | loop: "{{ docker_images }}" 8 | -------------------------------------------------------------------------------- /molecule/debian10/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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /molecule/ubuntu1604/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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /molecule/ubuntu1804/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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /molecule/ubuntu2004/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 | assert: 9 | that: true 10 | -------------------------------------------------------------------------------- /molecule/shared/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | vars: 5 | docker_set_grub_memory_limit: false 6 | docker_version: latest 7 | tasks: 8 | - name: Include ansible-role-docker 9 | include_role: 10 | name: ansible-role-docker 11 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to ansible-docker 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-docker 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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Python Environments 2 | .env 3 | .venv 4 | env/ 5 | venv/ 6 | ENV/ 7 | env.bak/ 8 | venv.bak/ 9 | 10 | # macOS System Files 11 | .DS_Store 12 | 13 | # Ansible specific 14 | *.retry 15 | 16 | # Molecule and testing artifacts 17 | .molecule/ 18 | .pytest_cache/ 19 | 20 | # Other common 21 | .cache/ 22 | __pycache__/ 23 | *.py[cod] 24 | *.log 25 | *.tar.gz 26 | *.egg-info/ 27 | dist/ 28 | build/ 29 | coverage.xml 30 | htmlcov/ 31 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.github/settings.yml: -------------------------------------------------------------------------------- 1 | # These settings are synced to GitHub by https://probot.github.io/apps/settings/ 2 | 3 | repository: 4 | # See https://developer.github.com/v3/repos/#edit for all available settings. 5 | 6 | # The name of the repository. Changing this will rename the repository 7 | name: ansible-docker 8 | 9 | # A short description of the repository that will show up on GitHub 10 | description: Enter description of Ansible role 11 | 12 | # A comma-separated list of topics to set on the repository 13 | topics: ansible, ansible-role 14 | -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | # Configuration for request-info - https://github.com/behaviorbot/request-info 2 | 3 | # *Required* Comment to reply with 4 | requestInfoReplyComment: > 5 | We would appreciate it if you could provide us with more info about this issue/pr! 6 | 7 | # *OPTIONAL* default titles to check against for lack of descriptiveness 8 | # MUST BE ALL LOWERCASE 9 | requestInfoDefaultTitles: 10 | - update readme.md 11 | - updates 12 | 13 | # *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given 14 | requestInfoLabelToAdd: needs-more-info 15 | -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /tasks/config_docker.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: config_docker | Configuring Docker Service (Debian) 3 | template: 4 | src: etc/default/docker.j2 5 | dest: /etc/default/docker 6 | owner: root 7 | group: root 8 | mode: 0644 9 | notify: restart docker 10 | become: true 11 | when: ansible_os_family == "Debian" 12 | 13 | - name: config_docker | Ensuring /etc/docker Folder Exists 14 | file: 15 | path: /etc/docker 16 | state: directory 17 | become: true 18 | 19 | - name: config_docker | Configuring Docker 20 | template: 21 | src: etc/docker/daemon.json.j2 22 | dest: /etc/docker/daemon.json 23 | notify: restart docker 24 | become: true 25 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # tasks file for ansible-docker 3 | - include_tasks: set_facts.yml 4 | 5 | - include_tasks: alpine.yml 6 | when: ansible_os_family == "Alpine" 7 | 8 | - include_tasks: debian.yml 9 | when: ansible_os_family == "Debian" 10 | 11 | - include_tasks: redhat.yml 12 | when: ansible_os_family == "RedHat" 13 | 14 | - include_tasks: config_docker.yml 15 | when: docker_config_service|bool 16 | 17 | - include_tasks: service.yml 18 | 19 | - include_tasks: users.yml 20 | when: 21 | - docker_config_users is defined 22 | - docker_config_users|bool 23 | 24 | - include_tasks: images.yml 25 | when: 26 | - docker_manage_images|bool 27 | - docker_images is defined 28 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | author: Larry Smith Jr./xiaoyao9184 4 | description: Ansible role to install/configure Docker 5 | license: MIT 6 | min_ansible_version: "2.11" 7 | role_name: docker 8 | 9 | platforms: 10 | - name: EL 11 | versions: 12 | - "7" 13 | - "8" 14 | - name: Ubuntu 15 | versions: 16 | # 16.04 17 | - xenial 18 | # 18.04 19 | - bionic 20 | # 20.04 21 | - focal 22 | - name: Debian 23 | versions: 24 | # 9 25 | - stretch 26 | # 10 27 | - buster 28 | 29 | galaxy_tags: 30 | - cloud 31 | - development 32 | - packaging 33 | - system 34 | 35 | dependencies: [] 36 | -------------------------------------------------------------------------------- /molecule/debian10/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # skip role name check 3 | # see https://github.com/ansible/ansible-compat/issues/78 4 | role_name_check: 1 5 | dependency: 6 | name: galaxy 7 | enabled: false 8 | options: 9 | role-file: requirements.yml 10 | driver: 11 | name: docker 12 | lint: | 13 | yamllint . 14 | ansible-lint 15 | flake8 16 | platforms: 17 | - name: debian10 18 | image: jrei/systemd-debian:10 19 | privileged: true 20 | command: /lib/systemd/systemd 21 | tmpfs: 22 | - /run 23 | - /run/lock 24 | - /sys/fs/cgroup 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 | # skip role name check 3 | # see https://github.com/ansible/ansible-compat/issues/78 4 | role_name_check: 1 5 | dependency: 6 | name: galaxy 7 | enabled: false 8 | options: 9 | role-file: requirements.yml 10 | driver: 11 | name: docker 12 | lint: | 13 | yamllint . 14 | ansible-lint 15 | flake8 16 | platforms: 17 | - name: ubuntu1604 18 | image: jrei/systemd-ubuntu:16.04 19 | privileged: true 20 | command: /lib/systemd/systemd 21 | tmpfs: 22 | - /run 23 | - /run/lock 24 | - /sys/fs/cgroup 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 | # skip role name check 3 | # see https://github.com/ansible/ansible-compat/issues/78 4 | role_name_check: 1 5 | dependency: 6 | name: galaxy 7 | enabled: false 8 | options: 9 | role-file: requirements.yml 10 | driver: 11 | name: docker 12 | lint: | 13 | yamllint . 14 | ansible-lint 15 | flake8 16 | platforms: 17 | - name: ubuntu1804 18 | image: jrei/systemd-ubuntu:18.04 19 | privileged: true 20 | command: /lib/systemd/systemd 21 | tmpfs: 22 | - /run 23 | - /run/lock 24 | - /sys/fs/cgroup 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 | # skip role name check 3 | # see https://github.com/ansible/ansible-compat/issues/78 4 | role_name_check: 1 5 | dependency: 6 | name: galaxy 7 | enabled: false 8 | options: 9 | role-file: requirements.yml 10 | driver: 11 | name: docker 12 | lint: | 13 | yamllint . 14 | ansible-lint 15 | flake8 16 | platforms: 17 | - name: ubuntu2004 18 | image: jrei/systemd-ubuntu:20.04 19 | privileged: true 20 | command: /lib/systemd/systemd 21 | tmpfs: 22 | - /run 23 | - /run/lock 24 | - /sys/fs/cgroup 25 | provisioner: 26 | name: ansible 27 | playbooks: 28 | converge: ../shared/converge.yml 29 | prepare: ../shared/prepare.yml 30 | verifier: 31 | name: ansible 32 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /molecule/centos7/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # skip role name check 3 | # see https://github.com/ansible/ansible-compat/issues/78 4 | role_name_check: 1 5 | dependency: 6 | name: galaxy 7 | enabled: false 8 | options: 9 | role-file: requirements.yml 10 | driver: 11 | name: docker 12 | lint: | 13 | yamllint . 14 | ansible-lint 15 | flake8 16 | platforms: 17 | - name: centos7 18 | image: jrei/systemd-centos:7 19 | pre_build_image: false 20 | privileged: true 21 | command: /usr/sbin/init 22 | tmpfs: 23 | - /run 24 | - /run/lock 25 | - /sys/fs/cgroup 26 | provisioner: 27 | name: ansible 28 | playbooks: 29 | converge: ../shared/converge.yml 30 | prepare: ../shared/prepare.yml 31 | verifier: 32 | name: ansible 33 | -------------------------------------------------------------------------------- /molecule/centos8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # skip role name check 3 | # see https://github.com/ansible/ansible-compat/issues/78 4 | role_name_check: 1 5 | dependency: 6 | name: galaxy 7 | enabled: false 8 | options: 9 | role-file: requirements.yml 10 | driver: 11 | name: docker 12 | lint: | 13 | yamllint . 14 | ansible-lint 15 | flake8 16 | platforms: 17 | - name: centos8 18 | image: jrei/systemd-centos:8 19 | pre_build_image: false 20 | privileged: true 21 | command: /usr/sbin/init 22 | tmpfs: 23 | - /run 24 | - /run/lock 25 | - /sys/fs/cgroup 26 | provisioner: 27 | name: ansible 28 | playbooks: 29 | converge: ../shared/converge.yml 30 | prepare: ../shared/prepare.yml 31 | verifier: 32 | name: ansible 33 | -------------------------------------------------------------------------------- /molecule/debian9/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # skip role name check 3 | # see https://github.com/ansible/ansible-compat/issues/78 4 | role_name_check: 1 5 | dependency: 6 | name: galaxy 7 | enabled: false 8 | options: 9 | role-file: requirements.yml 10 | driver: 11 | name: docker 12 | lint: | 13 | yamllint . 14 | ansible-lint 15 | flake8 16 | platforms: 17 | - name: debian9 18 | image: jrei/systemd-debian:9 19 | pre_build_image: false 20 | privileged: true 21 | command: /lib/systemd/systemd 22 | tmpfs: 23 | - /run 24 | - /run/lock 25 | - /sys/fs/cgroup 26 | provisioner: 27 | name: ansible 28 | playbooks: 29 | converge: ../shared/converge.yml 30 | prepare: ../shared/prepare.yml 31 | verifier: 32 | name: ansible 33 | -------------------------------------------------------------------------------- /tasks/alpine.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: alpine | Ensuring Edge Repo Is Enabled 3 | lineinfile: 4 | path: /etc/apk/repositories 5 | regexp: "^http://dl-cdn.alpinelinux.org/alpine/edge/community" 6 | line: http://dl-cdn.alpinelinux.org/alpine/edge/community 7 | state: present 8 | become: true 9 | register: _apk_repos_updated 10 | until: _apk_repos_updated is successful 11 | 12 | - name: alpine | Updating APK Cache # noqa 503 13 | apk: 14 | update_cache: true 15 | become: true 16 | register: result 17 | until: result is successful 18 | when: _apk_repos_updated['changed'] 19 | 20 | - name: alpine | Installing Docker 21 | apk: 22 | name: docker 23 | state: present 24 | become: true 25 | register: result 26 | until: result is successful 27 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /molecule/centos7/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | FROM jrei/systemd-centos:7 2 | 3 | # skip `Build an Ansible compatible image (new)` so we need install missing packages 4 | # see https://github.com/ansible-community/molecule-docker/blob/acb7d4ef0ea83d822f01adf26af543fa0817d5bd/src/molecule_docker/playbooks/create.yml#L65 5 | # see https://github.com/ansible-community/molecule-docker/blob/acb7d4ef0ea83d822f01adf26af543fa0817d5bd/src/molecule_docker/playbooks/Dockerfile.j2#L17 6 | RUN sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo && \ 7 | sed -i 's/^#.*baseurl=http/baseurl=http/g' /etc/yum.repos.d/*.repo && \ 8 | sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo && \ 9 | yum makecache && \ 10 | yum install -y sudo epel-release 11 | -------------------------------------------------------------------------------- /molecule/centos8/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | FROM jrei/systemd-centos:8 2 | 3 | # skip `Build an Ansible compatible image (new)` so we need install missing packages 4 | # see https://github.com/ansible-community/molecule-docker/blob/acb7d4ef0ea83d822f01adf26af543fa0817d5bd/src/molecule_docker/playbooks/create.yml#L65 5 | # see https://github.com/ansible-community/molecule-docker/blob/acb7d4ef0ea83d822f01adf26af543fa0817d5bd/src/molecule_docker/playbooks/Dockerfile.j2#L17 6 | RUN sed -i 's/mirror.centos.org/vault.centos.org/g' /etc/yum.repos.d/*.repo && \ 7 | sed -i 's/^#.*baseurl=http/baseurl=http/g' /etc/yum.repos.d/*.repo && \ 8 | sed -i 's/^mirrorlist=http/#mirrorlist=http/g' /etc/yum.repos.d/*.repo && \ 9 | yum makecache && \ 10 | yum install -y sudo epel-release 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 | -------------------------------------------------------------------------------- /molecule/debian9/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | FROM jrei/systemd-debian:9 2 | 3 | # skip `Build an Ansible compatible image (new)` so we need install missing packages 4 | # see https://github.com/ansible-community/molecule-docker/blob/acb7d4ef0ea83d822f01adf26af543fa0817d5bd/src/molecule_docker/playbooks/create.yml#L65 5 | # see https://github.com/ansible-community/molecule-docker/blob/acb7d4ef0ea83d822f01adf26af543fa0817d5bd/src/molecule_docker/playbooks/Dockerfile.j2#L17 6 | RUN sed -i 's|http://deb.debian.org|http://archive.debian.org|g' /etc/apt/sources.list && \ 7 | sed -i 's|http://security.debian.org|http://archive.debian.org|g' /etc/apt/sources.list && \ 8 | sed -i '/stretch-updates/d' /etc/apt/sources.list && \ 9 | apt-get update && \ 10 | apt-get install -y python3 sudo bash ca-certificates iproute2 python3-apt aptitude && \ 11 | apt-get clean && rm -rf /var/lib/apt/lists/* 12 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "ansible-docker" 3 | version = "0.2.1" 4 | description = "Ansible role to install/configure Docker" 5 | authors = ["Larry Smith Jr. ", "xiaoyao9184"] 6 | package-mode = false 7 | 8 | [tool.poetry.dependencies] 9 | # poetry use virtualenv and drop python < 3.7 support 10 | # see https://virtualenv.pypa.io/en/latest/changelog.html#v20-27-0-2024-10-17 11 | python = "^3.9" 12 | ansible = "^8.0.0" 13 | pyyaml = "^6.0" 14 | cffi = "^1.15.1" 15 | 16 | [tool.poetry.group.dev.dependencies] 17 | autopep8 = "^1.5.6" 18 | flake8 = "^3.9.0" 19 | pycodestyle = "^2.7.0" 20 | pylint = "^2.7.3" 21 | tox = "^3.23.0" 22 | black = "^24.3" 23 | ansible-lint = "^5.1.3" 24 | mkdocs = "^1.1.2" 25 | # molecule > 4.0.0 support skip role-name check 26 | # see https://github.com/ansible/ansible-compat/issues/78 27 | molecule = {extras = ["docker"], version = "^4.0.0"} 28 | yamllint = "^1.26.0" 29 | mkdocs-material = "^7.3.0" 30 | 31 | [build-system] 32 | requires = ["poetry-core>=1.0.0"] 33 | build-backend = "poetry.core.masonry.api" 34 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /templates/etc/yum.repos.d/docker.repo.j2: -------------------------------------------------------------------------------- 1 | [docker-ce-{{ docker_release_channel }}] 2 | name=Docker CE {{ docker_release_channel }} - $basearch 3 | baseurl=https://download.docker.com/linux/{{ ansible_distribution|lower }}/{{ ansible_distribution_major_version }}/$basearch/{{ docker_release_channel }} 4 | enabled=1 5 | gpgcheck=1 6 | gpgkey=https://download.docker.com/linux/{{ ansible_distribution|lower }}/gpg 7 | 8 | [docker-ce-{{ docker_release_channel }}-debuginfo] 9 | name=Docker CE {{ docker_release_channel }} - Debuginfo $basearch 10 | baseurl=https://download.docker.com/linux/{{ ansible_distribution|lower }}/{{ ansible_distribution_major_version }}/debug-$basearch/{{ docker_release_channel }} 11 | enabled=0 12 | gpgcheck=1 13 | gpgkey=https://download.docker.com/linux/{{ ansible_distribution|lower }}/gpg 14 | 15 | [docker-ce-{{ docker_release_channel }}-source] 16 | name=Docker CE {{ docker_release_channel }} - Sources 17 | baseurl=https://download.docker.com/linux/{{ ansible_distribution|lower }}/{{ ansible_distribution_major_version }}/source/{{ docker_release_channel }} 18 | enabled=0 19 | gpgcheck=1 20 | gpgkey=https://download.docker.com/linux/{{ ansible_distribution|lower }}/gpg 21 | -------------------------------------------------------------------------------- /.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: v3.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: v5.4.0 18 | hooks: 19 | - id: ansible-lint 20 | additional_dependencies: 21 | - .[community,yamllint] 22 | # fix dependencies `rich` break change 23 | # see https://github.com/ansible/ansible-lint/issues/1795 24 | - rich==10.11.0 25 | - repo: https://github.com/psf/black 26 | rev: 20.8b1 27 | hooks: 28 | - id: black 29 | language_version: python3 30 | - repo: https://github.com/PyCQA/flake8 31 | rev: 3.9.1 32 | hooks: 33 | - id: flake8 34 | - repo: https://github.com/adrienverge/yamllint 35 | rev: v1.26.2 36 | hooks: 37 | - id: yamllint 38 | -------------------------------------------------------------------------------- /.github/workflows/release-galaxy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Ansible Galaxy 3 | on: 4 | push: 5 | branches: 6 | - main 7 | - master 8 | - 'releases/**' 9 | tags: 10 | - '*' 11 | pull_request: 12 | branches: 13 | - main 14 | - master 15 | - 'releases/**' 16 | 17 | jobs: 18 | galaxy: 19 | runs-on: ubuntu-latest 20 | strategy: 21 | matrix: 22 | python-version: [3.9] 23 | 24 | steps: 25 | - uses: actions/checkout@v4 26 | with: 27 | submodules: recursive 28 | - name: Set up Python ${{ matrix.python-version }} 29 | uses: actions/setup-python@v4 30 | with: 31 | python-version: ${{ matrix.python-version }} 32 | - uses: actions/cache@v4 33 | with: 34 | path: | 35 | ~/.cache/pip 36 | ~/.cache/pypoetry 37 | key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }} 38 | restore-keys: | 39 | ${{ runner.os }}-poetry- 40 | - name: Install dependencies 41 | run: | 42 | python -m pip install --upgrade pip 43 | pip install pipx 44 | pipx ensurepath 45 | pipx install poetry 46 | pipx inject poetry poetry-plugin-export 47 | poetry install 48 | - name: Trigger a new import on Galaxy. 49 | run: ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }} mrlesmithjr ansible-docker || exit 1 50 | -------------------------------------------------------------------------------- /.github/workflows/test-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Molecule Test 3 | on: 4 | push: 5 | branches: 6 | - '*' 7 | workflow_dispatch: 8 | defaults: 9 | run: 10 | working-directory: 'ansible-role-docker' 11 | jobs: 12 | build: 13 | runs-on: ubuntu-20.04 14 | strategy: 15 | fail-fast: false 16 | max-parallel: 4 17 | matrix: 18 | molecule_distro: 19 | - centos7 20 | - centos8 21 | # debian8 only have python 3.4 version too old for ansible-core 2.11 22 | # - debian8 23 | - debian9 24 | - debian10 25 | # `jrei/systemd-fedora:latest` rolling release image too new for this 26 | # - fedora 27 | - ubuntu1604 28 | - ubuntu1804 29 | - ubuntu2004 30 | python-version: [3.9] 31 | 32 | steps: 33 | - uses: actions/checkout@v4 34 | with: 35 | path: 'ansible-role-docker' 36 | - name: Set up Python ${{ matrix.python-version }} 37 | uses: actions/setup-python@v4 38 | with: 39 | python-version: ${{ matrix.python-version }} 40 | - uses: actions/cache@v4 41 | with: 42 | path: | 43 | ~/.cache/pip 44 | ~/.cache/pypoetry 45 | key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }} 46 | restore-keys: | 47 | ${{ runner.os }}-poetry- 48 | - name: Install dependencies 49 | run: | 50 | python -m pip install --upgrade pip 51 | pip install pipx 52 | pipx ensurepath 53 | pipx install poetry 54 | pipx inject poetry poetry-plugin-export 55 | poetry install 56 | - name: Run pre-commit checks 57 | run: | 58 | SKIP=no-commit-to-branch pre-commit run --all-files 59 | - name: Test with molecule 60 | run: | 61 | molecule test --scenario-name ${{ matrix.molecule_distro }} 62 | env: 63 | # Fix `ERROR! Unexpected Exception, this is probably a bug: '/api/v3/plugin/ansible/content/published/collections/index/community/docker/versions/'` 64 | # see https://github.com/ansible/awx/issues/14495#issuecomment-1752708302 65 | ANSIBLE_CONFIG: ./molecule/ansible.old-galaxy.cfg 66 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ansible-core==2.11.12 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 2 | ansible==4.10.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 3 | cffi==1.17.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") and platform_python_implementation != "PyPy" 4 | cryptography==43.0.3 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 5 | cryptography==44.0.2 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 6 | jinja2==3.1.6 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 7 | markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 8 | markupsafe==3.0.2 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 9 | packaging==24.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 10 | pycparser==2.22 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") and platform_python_implementation != "PyPy" 11 | pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 12 | resolvelib==0.5.4 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ansible-docker 2 | 3 | Ansible role to install/configure Docker 4 | 5 | ## Build Status 6 | 7 | ### GitHub Actions 8 | 9 | [![Molecule Test](../../actions/workflows/test-molecule.yml/badge.svg)](../../actions/workflows/test-molecule.yml) 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 | > NOTE: Repo has been created/updated using [https://github.com/mrlesmithjr/cookiecutter-ansible-role](https://github.com/mrlesmithjr/cookiecutter-ansible-role) as a template. 39 | 40 | 41 | ## Development flow 42 | 43 | ### Install pipx for poetry 44 | 45 | ```bash 46 | pip install pipx 47 | pipx ensurepath 48 | pipx install poetry 49 | pipx inject poetry poetry-plugin-export 50 | ``` 51 | 52 | ### Create env by poetry 53 | 54 | ```bash 55 | # auto find system python verison by [tool.poetry.dependencies] 56 | poetry env use 57 | # OR use pyenv to find the path to the python3.9 executable 58 | poetry env use $(pyenv which python3.9) 59 | ``` 60 | 61 | ### Install dependencies 62 | 63 | ```bash 64 | # auto update dependencies 65 | poetry install 66 | # OR restore completely dependencies 67 | poetry run pip install -r requirements.txt -r requirements-dev.txt 68 | ``` 69 | 70 | ### Export pyproject.toml to requirements 71 | 72 | after add some new dependencies 73 | 74 | ``` 75 | poetry update molecule 76 | ``` 77 | 78 | 79 | ```bash 80 | poetry lock 81 | poetry export --without-hashes --output requirements.txt 82 | poetry export --without-hashes --only=dev --output requirements-dev.txt 83 | ``` 84 | 85 | ### Fix linting errors 86 | 87 | ```bash 88 | SKIP=no-commit-to-branch poetry run pre-commit run --all-files 89 | # OR use 90 | poetry run ansible-lint . 91 | ``` 92 | 93 | ### Test molecule scenario 94 | 95 | ```bash 96 | export ANSIBLE_CONFIG=$(pwd)/molecule/ansible.old-galaxy.cfg 97 | poetry run molecule --debug -vvv test --scenario-name centos7 98 | poetry run molecule --debug -vvv test --scenario-name centos8 99 | poetry run molecule --debug -vvv test --scenario-name debian9 100 | poetry run molecule --debug -vvv test --scenario-name debian10 101 | poetry run molecule --debug -vvv test --scenario-name ubuntu1604 102 | poetry run molecule --debug -vvv test --scenario-name ubuntu1804 103 | poetry run molecule --debug -vvv test --scenario-name ubuntu2004 104 | ``` 105 | -------------------------------------------------------------------------------- /templates/etc/docker/daemon.json.j2.orig: -------------------------------------------------------------------------------- 1 | {% set docker_options = {} %} 2 | {% if docker_opts.bridge is defined %} 3 | {% set _opts = docker_options.update({"bridge": docker_opts.bridge}) %} 4 | {% endif %} 5 | {% if docker_opts.bridge_ip is defined %} 6 | {% set _opts = docker_options.update({"bip": docker_opts.bridge_ip}) %} 7 | {% endif %} 8 | {% if docker_opts.dns is defined %} 9 | {% set _dns_servers = [] %} 10 | {% for item in docker_opts.dns %} 11 | {% set _opts = _dns_servers.append(item) %} 12 | {% endfor %} 13 | {% set _opts = docker_options.update({"dns": _dns_servers}) %} 14 | {% endif %} 15 | {% if docker_opts.dns_search is defined %} 16 | {% set _dns_search = [] %} 17 | {% for item in docker_opts.dns_search %} 18 | {% set _opts = _dns_search.append(item) %} 19 | {% endfor %} 20 | {% set _opts = docker_options.update({"dns-search": _dns_search}) %} 21 | {% endif %} 22 | {% if docker_opts.insecure_registries is defined %} 23 | {% set _insecure_registries = [] %} 24 | {% for item in docker_opts.insecure_registries %} 25 | {% set _opts = _insecure_registries.append(item) %} 26 | {% endfor %} 27 | {% set _opts = docker_options.update({"insecure-registries": _insecure_registries}) %} 28 | {% endif %} 29 | {% if docker_opts.ip is defined %} 30 | {% set _opts = docker_options.update({"ip": docker_opts.ip}) %} 31 | {% endif %} 32 | {% if docker_opts.ip_forward is defined %} 33 | {% set _opts = docker_options.update({"ip-forward": docker_opts.ip_forward}) %} 34 | {% endif %} 35 | {% if docker_opts.ip_masq is defined %} 36 | {% set _opts = docker_options.update({"ip-masq": docker_opts.ip_masq}) %} 37 | {% endif %} 38 | {% if docker_opts.iptables is defined %} 39 | {% set _opts = docker_options.update({"iptables": docker_opts.iptables}) %} 40 | {% endif %} 41 | {% if docker_opts.labels is defined %} 42 | {% set _labels = [] %} 43 | {% for item in docker_opts.labels %} 44 | {% set _opts = _labels.append(item.key+"="+item.value) %} 45 | {% endfor %} 46 | {% set _opts = docker_options.update({"labels": _labels}) %} 47 | {% endif %} 48 | {% if docker_opts.log_driver is defined %} 49 | {% set _opts = docker_options.update({"log-driver": docker_opts.log_driver}) %} 50 | {% endif %} 51 | {% if docker_opts.log_level is defined %} 52 | {% set _opts = docker_options.update({"log-level": docker_opts.log_level}) %} 53 | {% endif %} 54 | {% if docker_opts.max_concurrent_downloads is defined %} 55 | {% set _opts = docker_options.update({"max-concurrent-downloads": docker_opts.max_concurrent_downloads|int}) %} 56 | {% endif %} 57 | {% if docker_opts.max_concurrent_uploads is defined %} 58 | {% set _opts = docker_options.update({"max-concurrent-uploads": docker_opts.max_concurrent_uploads|int}) %} 59 | {% endif %} 60 | {% if docker_opts.storage_driver is defined %} 61 | {% set _opts = docker_options.update({"storage-driver": docker_opts.storage_driver}) %} 62 | {% endif %} 63 | {% if docker_opts.tls is defined %} 64 | {% set _opts = docker_options.update({"tls": docker_opts.tls}) %} 65 | {% endif %} 66 | {{ docker_options| to_nice_json }} 67 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /tasks/redhat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: redhat | Uninstalling Old Docker Package (if exists) 3 | package: 4 | name: 5 | - docker 6 | - docker-client 7 | - docker-client-latest 8 | - docker-common 9 | - docker-engine 10 | - docker-latest 11 | - docker-latest-logrotate 12 | - docker-logrotate 13 | state: absent 14 | become: true 15 | register: result 16 | until: result is successful 17 | when: ansible_distribution != "Fedora" 18 | 19 | - name: redhat | Uninstalling Old Docker Package (if exists) 20 | package: 21 | name: 22 | - docker 23 | - docker-client 24 | - docker-client-latest 25 | - docker-common 26 | - docker-engine 27 | - docker-engine-selinux 28 | - docker-latest 29 | - docker-latest-logrotate 30 | - docker-logrotate 31 | - docker-selinux 32 | state: absent 33 | become: true 34 | register: result 35 | until: result is successful 36 | when: ansible_distribution == "Fedora" 37 | 38 | - name: redhat | adding Docker repo 39 | template: 40 | src: etc/yum.repos.d/docker.repo.j2 41 | dest: /etc/yum.repos.d/docker.repo 42 | become: true 43 | when: > 44 | ansible_distribution != "Fedora" or 45 | (ansible_distribution == "Fedora" and 46 | ansible_distribution_version is version('31', '<')) 47 | 48 | - name: redhat | installing Docker 49 | package: 50 | name: 51 | - "docker-ce-{{ docker_version_redhat }}" 52 | - containerd.io 53 | state: present 54 | become: true 55 | register: result 56 | until: result is successful 57 | when: > 58 | docker_version|lower != "latest" and 59 | (ansible_distribution != "Fedora" or 60 | (ansible_distribution == "Fedora" and 61 | ansible_distribution_version is version('31', '<'))) 62 | 63 | - name: redhat | installing Docker 64 | package: 65 | name: 66 | - docker-ce 67 | - containerd.io 68 | state: present 69 | become: true 70 | register: result 71 | until: result is successful 72 | when: > 73 | docker_version|lower == "latest" and 74 | (ansible_distribution != "Fedora" or 75 | (ansible_distribution == "Fedora" and 76 | ansible_distribution_version is version('31', '<'))) 77 | 78 | - name: redhat | Installing bridge-utils 79 | package: 80 | name: bridge-utils 81 | state: present 82 | become: true 83 | register: result 84 | until: result is successful 85 | when: 86 | - docker_install_bridge_utils is defined 87 | - docker_install_bridge_utils 88 | 89 | # https://fedoramagazine.org/docker-and-fedora-32/ 90 | - name: redhat | installing Docker 91 | package: 92 | name: 93 | - docker-compose 94 | - moby-engine 95 | state: present 96 | become: true 97 | register: result 98 | until: result is successful 99 | when: 100 | - ansible_distribution == "Fedora" 101 | - ansible_distribution_version is version('31', '>=') 102 | 103 | # https://fedoramagazine.org/docker-and-fedora-32/ 104 | - name: redhat | Configuring FirewallD 105 | firewalld: 106 | interface: docker0 107 | permanent: true 108 | state: enabled 109 | zone: trusted 110 | become: true 111 | when: 112 | - ansible_distribution == "Fedora" 113 | - ansible_distribution_version is version('32', '>=') 114 | 115 | # https://fedoramagazine.org/docker-and-fedora-32/ 116 | - name: redhat | Configuring FirewallD 117 | firewalld: 118 | masquerade: "true" 119 | permanent: true 120 | state: enabled 121 | zone: FedoraWorkstation 122 | become: true 123 | when: 124 | - ansible_distribution == "Fedora" 125 | - ansible_distribution_version is version('32', '>=') 126 | -------------------------------------------------------------------------------- /tasks/debian.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: debian | updating apt-cache 3 | apt: 4 | update_cache: true 5 | cache_valid_time: 86400 6 | become: true 7 | register: result 8 | until: result is successful 9 | 10 | - name: debian | installing pre-reqs 11 | apt: 12 | name: 13 | - apt-transport-https 14 | - ca-certificates 15 | - curl 16 | - gnupg-agent 17 | - software-properties-common 18 | state: present 19 | become: true 20 | register: result 21 | until: result is successful 22 | 23 | # We are removing the old Docker info 24 | - name: debian | Removing Legacy Docker apt-key 25 | apt_key: 26 | keyserver: hkp://p80.pool.sks-keyservers.net:80 27 | id: 58118E89F3A912897C070ADBF76221572C52609D 28 | state: absent 29 | become: true 30 | 31 | # We are removing the old Docker info 32 | - name: debian | Removing Legacy Docker Repo 33 | apt_repository: 34 | repo: "deb https://apt.dockerproject.org/repo {{ ansible_distribution | lower }}-{{ ansible_distribution_release }} main" 35 | state: absent 36 | become: true 37 | 38 | - name: debian | adding docker apt-key 39 | apt_key: 40 | url: "{{ docker_ubuntu_repo_info['url'] }}" 41 | id: "{{ docker_ubuntu_repo_info['id'] }}" 42 | state: present 43 | become: true 44 | register: result 45 | until: result is successful 46 | 47 | - name: debian | adding docker repo 48 | apt_repository: 49 | repo: "{{ docker_ubuntu_repo_info['repo'] }}" 50 | state: present 51 | become: true 52 | register: result 53 | until: result is successful 54 | 55 | # We remove docker-engine as this is old package to install. The new package is 56 | # docker-ce 57 | - name: debian | uninstalling old docker packages (if exists) 58 | apt: 59 | name: 60 | - containerd 61 | - docker 62 | - docker-engine 63 | - docker.io 64 | - lxc-docker 65 | - runc 66 | state: absent 67 | purge: true 68 | become: true 69 | register: result 70 | until: result is successful 71 | 72 | - name: debian | checking for existing docker # noqa 305 73 | shell: dpkg-query -W 'docker-ce' 74 | ignore_errors: true 75 | register: has_docker 76 | changed_when: false 77 | 78 | - name: debian | installing docker 79 | apt: 80 | name: 81 | - containerd.io 82 | - "docker-ce={{ docker_version_debian }}" 83 | state: present 84 | become: true 85 | register: result 86 | until: result is successful 87 | when: 88 | - docker_version|lower != "latest" 89 | - has_docker is failed 90 | 91 | - name: debian | installing docker 92 | apt: 93 | name: 94 | - containerd.io 95 | - docker-ce 96 | state: present 97 | become: true 98 | register: result 99 | until: result is successful 100 | when: 101 | - docker_version|lower == "latest" 102 | - has_docker is failed 103 | 104 | - name: debian | Checking For /etc/default/grub 105 | stat: 106 | path: /etc/default/grub 107 | register: _docker_grub_check 108 | 109 | - name: debian | setting grub memory limit (if set) 110 | lineinfile: 111 | dest: /etc/default/grub 112 | regexp: "^GRUB_CMDLINE_LINUX_DEFAULT" 113 | line: 'GRUB_CMDLINE_LINUX_DEFAULT="cgroup_enable=memory swapaccount=1"' 114 | register: grub_updated 115 | become: true 116 | when: 117 | - _docker_grub_check['stat']['exists'] 118 | - docker_set_grub_memory_limit is defined 119 | - docker_set_grub_memory_limit 120 | 121 | - name: debian | updating grub (if updated) # noqa 503 122 | command: update-grub 123 | become: true 124 | when: grub_updated['changed'] 125 | 126 | - name: debian | Installing bridge-utils 127 | apt: 128 | name: bridge-utils 129 | state: present 130 | become: true 131 | register: result 132 | until: result is successful 133 | when: 134 | - docker_install_bridge_utils is defined 135 | - docker_install_bridge_utils 136 | -------------------------------------------------------------------------------- /tasks/set_facts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: set_facts | Assert Debian Version 3 | assert: 4 | that: 5 | - docker_version is version('18.06', '>=') 6 | fail_msg: "'docker_version' MUST be 18.06 or lower for Debian 8" 7 | when: 8 | - docker_version|lower != "latest" 9 | - ansible_distribution == "Debian" 10 | - ansible_distribution_major_version is version('8', '==') 11 | 12 | - name: set_facts | Assert Ubuntu Version 13 | assert: 14 | that: 15 | - docker_version is version('19.03', '>=') 16 | fail_msg: "'docker_version' MUST be 19.03 or higher for Ubuntu 20.04 and higher" 17 | when: 18 | - docker_version|lower != "latest" 19 | - ansible_distribution == "Ubuntu" 20 | - ansible_distribution_version is version('20.04', '>=') 21 | 22 | - name: set_facts | Setting Docker Version To Install (Debian) 23 | set_fact: 24 | docker_version_debian: "{{ docker_version }}-0~{{ ansible_distribution_release|lower }}" 25 | when: 26 | - docker_version|lower != "latest" 27 | - ansible_os_family == "Debian" 28 | - docker_version is version('1.12.4', '<') 29 | 30 | - name: set_facts | Setting Docker Version To Install (Debian) 31 | set_fact: 32 | docker_version_debian: "{{ docker_version }}-0~{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}" 33 | when: 34 | - docker_version|lower != "latest" 35 | - ansible_os_family == "Debian" 36 | - docker_version is version('1.12.4', '>=') 37 | - docker_version is version('1.13.1', '<=') 38 | 39 | - name: set_facts | Setting Docker Version To Install (Debian) 40 | set_fact: 41 | docker_version_debian: "{{ docker_version }}~ce-0~{{ ansible_distribution|lower }}-{{ ansible_distribution_release|lower }}" 42 | when: 43 | - docker_version|lower != "latest" 44 | - ansible_os_family == "Debian" 45 | - docker_version is version('17.03', '>=') 46 | - docker_version is version('17.06', '<') 47 | 48 | - name: set_facts | Setting Docker Version To Install (Debian) 49 | set_fact: 50 | docker_version_debian: "{{ docker_version }}~ce-0~{{ ansible_distribution|lower }}" 51 | when: 52 | - docker_version|lower != "latest" 53 | - ansible_os_family == "Debian" 54 | - docker_version is version('17.06', '>=') 55 | - docker_version is version('18.09', '<') 56 | 57 | - name: set_facts | Setting Docker Version To Install (Debian) 58 | set_fact: 59 | docker_version_debian: "{{ docker_version }}~ce~3-0~{{ ansible_distribution|lower }}" 60 | when: 61 | - docker_version|lower != "latest" 62 | - ansible_distribution == "Ubuntu" 63 | - ansible_distribution_version is version('16.04', '>') 64 | - docker_version is version('18.03', '>=') 65 | - docker_version is version('18.09', '<') 66 | 67 | - name: set_facts | Setting Docker Version To Install (Debian) 68 | set_fact: 69 | docker_version_debian: "5:{{ docker_version }}~3-0~{{ ansible_distribution|lower }}-{{ ansible_distribution_release }}" 70 | when: 71 | - docker_version|lower != "latest" 72 | - ansible_os_family == "Debian" 73 | - docker_version is version('18.09', '>=') 74 | 75 | - name: set_facts | Setting Docker Version To Install (Fedora) 76 | set_fact: 77 | docker_version_redhat: "{{ docker_version }}-1.el7.centos" 78 | when: 79 | - docker_version|lower != "latest" 80 | - ansible_os_family == "RedHat" 81 | - ansible_distribution == "Fedora" 82 | - docker_version is version('17.03', '<') 83 | 84 | - name: set_facts | Setting Docker Version To Install (Fedora) 85 | set_fact: 86 | docker_version_redhat: "{{ docker_version }}.ce-1.fc{{ ansible_distribution_major_version }}" 87 | when: 88 | - docker_version|lower != "latest" 89 | - ansible_os_family == "RedHat" 90 | - ansible_distribution == "Fedora" 91 | - docker_version is version('17.03', '>=') 92 | 93 | - name: set_facts | Setting Docker Version To Install (RedHat) 94 | set_fact: 95 | docker_version_redhat: "{{ docker_version }}-1.el7.centos" 96 | when: 97 | - docker_version|lower != "latest" 98 | - ansible_os_family == "RedHat" 99 | - ansible_distribution != "Fedora" 100 | - docker_version is version('17.03', '<') 101 | - ansible_distribution_version is version('7', '>=') 102 | - ansible_distribution_version is version('8', '<') 103 | 104 | - name: set_facts | Setting Docker Version To Install (RedHat) 105 | set_fact: 106 | docker_version_redhat: "{{ docker_version }}.ce-1.el7.centos" 107 | when: 108 | - docker_version|lower != "latest" 109 | - ansible_os_family == "RedHat" 110 | - ansible_distribution != "Fedora" 111 | - docker_version is version('17.03', '>=') 112 | - docker_version is version('18.06', '<') 113 | - ansible_distribution_version is version('7', '>=') 114 | - ansible_distribution_version is version('8', '<') 115 | 116 | - name: set_facts | Setting Docker Version To Install (RedHat) 117 | set_fact: 118 | docker_version_redhat: "{{ docker_version }}.ce-3.el7" 119 | when: 120 | - docker_version|lower != "latest" 121 | - ansible_os_family == "RedHat" 122 | - ansible_distribution != "Fedora" 123 | - docker_version is version('18.06', '>=') 124 | - docker_version is version('18.09', '<') 125 | - ansible_distribution_version is version('7', '>=') 126 | - ansible_distribution_version is version('8', '<') 127 | 128 | - name: Installing Docker Version On Debian 129 | debug: 130 | msg: "Installing Docker Version {{ docker_version_debian }}" 131 | when: 132 | - docker_version|lower != "latest" 133 | - ansible_os_family == "Debian" 134 | 135 | - name: Installing Docker Version On RedHat 136 | debug: 137 | msg: "Installing Docker Version {{ docker_version_redhat }}" 138 | when: 139 | - ansible_os_family == "RedHat" 140 | - docker_version|lower != "latest" 141 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # defaults file for ansible-docker 3 | 4 | # Ensure this exists if setting docker to alternate data directory 5 | # We do not create this to ensure any add'l mounts do not overlay this path 6 | # Service may fail to start if not. 7 | docker_alt_data_dir: /mnt/docker 8 | 9 | # Defines address of cluster address 10 | # Not the same as Swarm Cluster address 11 | # Ex. Consul 12 | docker_cluster_addr: "{{ hostvars[inventory_hostname]['ansible_' + docker_cluster_interface]['ipv4']['address'] }}" 13 | 14 | # Defines interface to capture address from for docker_cluster_addr 15 | docker_cluster_interface: "{{ docker_swarm_interface }}" 16 | 17 | docker_cluster_port: 2376 18 | 19 | # Defines if docker should be configured to store data in alternate location 20 | # ensure to enable -g option in docker_opts if true 21 | docker_config_alt_data_dir: false 22 | 23 | # Defines if docker service should be configured 24 | docker_config_service: false 25 | 26 | # Defines if users defined in docker_users should be added to docker group 27 | docker_config_users: false 28 | 29 | # Defines docker images to be installed 30 | docker_images: 31 | [] 32 | # Defines image name 33 | # ex. docker hub image name 34 | # - name: centos 35 | # Defines state of image 36 | # present|absent 37 | # state: present 38 | # - name: elasticsearch 39 | # state: present 40 | # - name: fedora 41 | # state: present 42 | # - name: ubuntu 43 | # state: present 44 | 45 | # Defines if images defined in docker_images are managed 46 | docker_manage_images: false 47 | 48 | # Defines docker service options to be configured in /etc/docker/daemon.json 49 | # Configure each option the same naming/format as the variables are set as at 50 | # https://docs.docker.com/engine/reference/commandline/dockerd/ 51 | # The values are converted directly to proper JSON using the Jinja2 template 52 | docker_opts: 53 | # Only define bridge or bip if you want to use either one of these 54 | # They cannot be used together 55 | # Specify network bridge IP 56 | # bip: 172.17.0.1/8 57 | # Attach containers to a network bridge 58 | # bridge: docker0 59 | # Address or interface name to advertise 60 | # cluster-advertise: "{{ docker_cluster_addr }}:{{ docker_cluster_port }}" 61 | # Set cluster store options 62 | # cluster-store: "consul://192.168.250.10:8500" 63 | # Enable debug mode 64 | debug: false 65 | # Container default gateway IPv4 address 66 | # default-gateway: 10.10.10.1 67 | # Default ulimits for containers 68 | # default-ulimit: 69 | # - nofile: "64000:64000" 70 | # DNS server to use 71 | # dns: 72 | # - 8.8.8.8 73 | # - 8.8.4.4 74 | # DNS search domains to use 75 | # dns-search: 76 | # - etsbv.internal 77 | # - etsbv.test 78 | # Enable insecure registry communication 79 | # insecure-registries: 80 | # - "gitlab.etsbv.internal:5000" 81 | # Default IP when binding container ports 82 | # ip: 0.0.0.0 83 | # Enable net.ipv4.ip_forward 84 | ip-forward: true 85 | # Enable IP masquerading 86 | ip-masq: true 87 | # Enable addition of iptables rules 88 | iptables: true 89 | # Set key=value labels to the daemon 90 | # label: 91 | # - environment: test 92 | # - datacenter: atlanta 93 | # Default driver for container logs 94 | # Default is json-file 95 | # log-driver: json-file 96 | # Fluentd log driver setup 97 | # log-driver: fluentd 98 | # log-opts: 99 | # fluentd-address: "fluentdhost:24224" 100 | # fluentd-address: tcp://fluentdhost:24224 101 | # End of Fluentd log driver setup 102 | # GELF (Graylog) log driver setup 103 | # log-driver: egelf 104 | # log-opts: 105 | # gelf-address: "udp://1.2.3.4:12201" 106 | # tag: "{% raw %}{{.Name}}/{{.FullID}}{% endraw %}" 107 | # labels: location 108 | # env: TEST 109 | # End of GELF (Graylog) log driver setup 110 | # Splunk log driver setup 111 | # log-driver: splunk 112 | # log-opts: 113 | # splunk-token: 176FCEBF-4CF5-4EDF-91BC-703796522D20 114 | # splunk-url: "https://splunkhost:8088" 115 | # splunk-capath: /path/to/cert/cacert.pem 116 | # splunk-caname: SplunkServerDefaultCert 117 | # tag: "{% raw %}{{.Name}}/{{.FullID}}{% endraw %}" 118 | # labels: location 119 | # env: TEST 120 | # End of Splunk log driver setup 121 | # Syslog log driver setup 122 | # log-driver: syslog 123 | # log-opts: 124 | # Define syslog address or leave commented out for logging to host local 125 | # syslog. 126 | # syslog-address: "udp://1.2.3.4:1111" 127 | # tag: "{% raw %}{{.Name}}/{{.FullID}}{% endraw %}" 128 | # labels: location 129 | # env: TEST 130 | # Set the logging level 131 | # log-level: info 132 | # Set the max concurrent downloads for each pull 133 | max-concurrent-downloads: 3 134 | # Set the max concurrent uploads for each push 135 | max-concurrent-uploads: 5 136 | # Set the containers network MTU 137 | # mtu: 1500 138 | # Enable selinux support 139 | selinux-enabled: false 140 | # Storage driver to use 141 | # aufs, devicemapper, btrfs, zfs, overlay and overlay2 142 | # storage-driver: aufs 143 | # Set default address or interface for swarm advertised address 144 | swarm-default-advertise-addr: "{{ docker_swarm_addr }}" 145 | # Use TLS; implied by –tlsverify 146 | # tls: false 147 | 148 | # Defines which repo to install from 149 | # Stable gives you reliable updates every quarter 150 | # Edge gives you new features every month 151 | # define as stable or edge 152 | docker_release_channel: stable 153 | 154 | # Defines if docker memory limits should be added to grub boot loader 155 | docker_set_grub_memory_limit: true 156 | 157 | # Defines if Linux birdge-utils will get installed. 158 | docker_install_bridge_utils: true 159 | 160 | docker_swarm_addr: "{{ hostvars[inventory_hostname]['ansible_' + docker_swarm_interface]['ipv4']['address'] }}" 161 | 162 | docker_swarm_interface: enp0s8 163 | 164 | # Defines docker ubuntu repo info for installing from 165 | docker_ubuntu_repo_info: 166 | id: 0EBFCD88 167 | # keyserver: "hkp://p80.pool.sks-keyservers.net:80" 168 | repo: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_release_channel }}" 169 | url: "https://download.docker.com/linux/ubuntu/gpg" 170 | 171 | # Defines users to be added to docker group to allow non sudo access to docker 172 | docker_users: [] 173 | # - vagrant 174 | 175 | # Define Docker version to install 176 | # 177 | # 1.11.0|1.11.1|1.11.2|1.12.0|1.12.1|1.12.2|1.12.3|1.12.4|1.12.5|1.12.6|1.13.0|1.13.1 178 | # 17.03.0|17.03.1|17.03.2|17.04.0|17.05.0|17.06.0|17.12.0|18.03.1 179 | # 180 | # You may also set docker_version to latest(default) 181 | # Currently as of 06/03/2017 17.04.0 and 17.05.0 must be installed from the 182 | # edge channel. Change docker_release_channel: 'edge' 183 | # 184 | # docker_version: 18.03.1 185 | docker_version: latest 186 | -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- 1 | ansible-compat==2.2.7 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 2 | ansible-lint==5.4.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 3 | arrow==1.3.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 4 | astroid==2.15.8 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 5 | attrs==25.3.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 6 | autopep8==1.5.7 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 7 | binaryornot==0.4.4 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 8 | black==21.12b0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 9 | bracex==2.5.post1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 10 | certifi==2025.1.31 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 11 | chardet==5.2.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 12 | charset-normalizer==3.4.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 13 | click-help-colors==0.9.4 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 14 | click==8.1.8 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 15 | colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0" and (platform_system == "Windows" or sys_platform == "win32") and (python_version <= "3.10" or sys_platform == "linux" or sys_platform == "linux2" or sys_platform == "win32" or sys_platform != "linux" and sys_platform != "linux2") 16 | cookiecutter==2.6.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 17 | dill==0.3.9 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 18 | distlib==0.3.9 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 19 | distro==1.9.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2") 20 | docker==7.1.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 21 | enrich==1.2.7 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 22 | filelock==3.16.1 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 23 | filelock==3.18.0 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 24 | flake8==3.9.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 25 | ghp-import==2.1.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 26 | idna==3.10 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 27 | importlib-metadata==8.5.0 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 28 | importlib-resources==6.4.5 ; python_version == "3.8" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 29 | isort==5.13.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 30 | jinja2==3.1.6 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 31 | jsonschema-specifications==2023.12.1 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 32 | jsonschema-specifications==2024.10.1 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 33 | jsonschema==4.23.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 34 | lazy-object-proxy==1.10.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 35 | markdown-it-py==3.0.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 36 | markdown==3.7 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 37 | markupsafe==2.1.5 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 38 | markupsafe==3.0.2 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 39 | mccabe==0.6.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 40 | mdurl==0.1.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 41 | mergedeep==1.3.4 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 42 | mkdocs-get-deps==0.2.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 43 | mkdocs-material-extensions==1.3.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 44 | mkdocs-material==7.3.6 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 45 | mkdocs==1.6.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 46 | molecule-docker==2.1.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 47 | molecule==4.0.4 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 48 | mypy-extensions==1.0.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 49 | packaging==24.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 50 | pathspec==0.12.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 51 | pkgutil-resolve-name==1.3.10 ; python_version == "3.8" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 52 | platformdirs==4.3.6 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 53 | pluggy==1.5.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 54 | py==1.11.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 55 | pycodestyle==2.7.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 56 | pyflakes==2.3.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 57 | pygments==2.19.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 58 | pylint==2.17.7 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 59 | pymdown-extensions==10.14.3 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 60 | python-dateutil==2.9.0.post0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 61 | python-slugify==8.0.4 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 62 | pywin32==309 ; python_version >= "3.8" and python_version < "4.0" and sys_platform == "win32" 63 | pyyaml-env-tag==0.1 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 64 | pyyaml==6.0.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 65 | referencing==0.35.1 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 66 | referencing==0.36.2 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 67 | requests==2.32.3 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 68 | rich==13.9.4 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 69 | rpds-py==0.20.1 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 70 | rpds-py==0.23.1 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 71 | ruamel-yaml-clib==0.2.12 ; python_version >= "3.10" and python_version < "3.13" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") and platform_python_implementation == "CPython" 72 | ruamel-yaml-clib==0.2.8 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") and platform_python_implementation == "CPython" 73 | ruamel-yaml==0.18.10 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 74 | selinux==0.2.1 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2") 75 | selinux==0.3.0 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2") 76 | setuptools==75.3.2 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2") 77 | six==1.17.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 78 | subprocess-tee==0.4.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 79 | tenacity==9.0.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 80 | text-unidecode==1.3 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 81 | toml==0.10.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 82 | tomli==1.2.3 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 83 | tomlkit==0.13.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 84 | tox==3.25.1 ; python_version >= "3.8" and python_version <= "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 85 | tox==3.28.0 ; python_version >= "3.11" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 86 | types-python-dateutil==2.9.0.20241206 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 87 | typing-extensions==4.12.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 88 | urllib3==2.2.3 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 89 | urllib3==2.3.0 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 90 | virtualenv==20.29.3 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 91 | watchdog==4.0.2 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 92 | watchdog==6.0.0 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 93 | wcmatch==10.0 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 94 | wrapt==1.17.2 ; python_version >= "3.8" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 95 | yamllint==1.35.1 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 96 | yamllint==1.36.1 ; python_version >= "3.10" and python_version < "4.0" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 97 | zipp==3.20.2 ; python_version >= "3.8" and python_version < "3.10" and (sys_platform == "linux" or sys_platform == "linux2" or sys_platform != "linux" and sys_platform != "linux2") 98 | -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand. 2 | 3 | [[package]] 4 | name = "ansible" 5 | version = "8.7.0" 6 | description = "Radically simple IT automation" 7 | optional = false 8 | python-versions = ">=3.9" 9 | groups = ["main"] 10 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 11 | files = [ 12 | {file = "ansible-8.7.0-py3-none-any.whl", hash = "sha256:fa7d3bc2dfdb0ab031df645814ff86b15cb5ec041bfbee4041f795abfa5646ca"}, 13 | {file = "ansible-8.7.0.tar.gz", hash = "sha256:3a5ca5152e4547d590e40b542d76b18dbbe2b36da4edd00a13a7c51a374ff737"}, 14 | ] 15 | 16 | [package.dependencies] 17 | ansible-core = ">=2.15.7,<2.16.0" 18 | 19 | [[package]] 20 | name = "ansible-compat" 21 | version = "2.2.7" 22 | description = "Ansible compatibility goodies" 23 | optional = false 24 | python-versions = ">=3.8" 25 | groups = ["dev"] 26 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 27 | files = [ 28 | {file = "ansible-compat-2.2.7.tar.gz", hash = "sha256:08deddcd0a1dc6baabe674b07c6ff882118492c123d281f56f01905271a7ffc4"}, 29 | {file = "ansible_compat-2.2.7-py3-none-any.whl", hash = "sha256:77fd80841279d8b0664df61faab65c32275d1a2b0079f60bf30c3d44251f6301"}, 30 | ] 31 | 32 | [package.dependencies] 33 | jsonschema = ">=4.6.0" 34 | packaging = "*" 35 | PyYAML = "*" 36 | subprocess-tee = ">=0.3.5" 37 | 38 | [package.extras] 39 | docs = ["myst-parser", "sphinx (>=5.3.0)", "sphinx-ansible-theme", "sphinx-autobuild (>=2021.3.14)"] 40 | test = ["coverage", "pip-tools", "pytest (>=7.2.0)", "pytest-mock", "pytest-plus"] 41 | 42 | [[package]] 43 | name = "ansible-core" 44 | version = "2.15.13" 45 | description = "Radically simple IT automation" 46 | optional = false 47 | python-versions = ">=3.9" 48 | groups = ["main"] 49 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 50 | files = [ 51 | {file = "ansible_core-2.15.13-py3-none-any.whl", hash = "sha256:e7f50bbb61beae792f5ecb86eff82149d3948d078361d70aedb01d76bc483c30"}, 52 | {file = "ansible_core-2.15.13.tar.gz", hash = "sha256:f542e702ee31fb049732143aeee6b36311ca48b7d13960a0685afffa0d742d7f"}, 53 | ] 54 | 55 | [package.dependencies] 56 | cryptography = "*" 57 | importlib-resources = {version = ">=5.0,<5.1", markers = "python_version < \"3.10\""} 58 | jinja2 = ">=3.0.0" 59 | packaging = "*" 60 | PyYAML = ">=5.1" 61 | resolvelib = ">=0.5.3,<1.1.0" 62 | 63 | [[package]] 64 | name = "ansible-lint" 65 | version = "5.1.3" 66 | description = "Checks playbooks for practices and behaviour that could potentially be improved" 67 | optional = false 68 | python-versions = ">=3.6" 69 | groups = ["dev"] 70 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 71 | files = [ 72 | {file = "ansible-lint-5.1.3.tar.gz", hash = "sha256:795665532fea000568eef18644aa43341a5c51b8690e7c559e273162278566d0"}, 73 | {file = "ansible_lint-5.1.3-py3-none-any.whl", hash = "sha256:0a6396be6a4184b24aa83e76ec876bbdae4ed8a6a9ffb63e7d8fa56e5337b976"}, 74 | ] 75 | 76 | [package.dependencies] 77 | enrich = ">=1.2.6" 78 | packaging = "*" 79 | pyyaml = "*" 80 | rich = ">=9.5.1" 81 | "ruamel.yaml" = {version = ">=0.15.37,<1", markers = "python_version >= \"3.7\""} 82 | tenacity = "*" 83 | wcmatch = ">=7.0" 84 | 85 | [package.extras] 86 | community = ["ansible (>=2.10)"] 87 | core = ["ansible-base (>=2.10)"] 88 | test = ["flaky (>=3.7.0)", "psutil", "pytest (>=6.0.1)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=2.1.0)"] 89 | yamllint = ["yamllint (>=1.25.0)"] 90 | 91 | [[package]] 92 | name = "arrow" 93 | version = "1.1.1" 94 | description = "Better dates & times for Python" 95 | optional = false 96 | python-versions = ">=3.6" 97 | groups = ["dev"] 98 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 99 | files = [ 100 | {file = "arrow-1.1.1-py3-none-any.whl", hash = "sha256:77a60a4db5766d900a2085ce9074c5c7b8e2c99afeaa98ad627637ff6f292510"}, 101 | {file = "arrow-1.1.1.tar.gz", hash = "sha256:dee7602f6c60e3ec510095b5e301441bc56288cb8f51def14dcb3079f623823a"}, 102 | ] 103 | 104 | [package.dependencies] 105 | python-dateutil = ">=2.7.0" 106 | 107 | [[package]] 108 | name = "astroid" 109 | version = "2.8.0" 110 | description = "An abstract syntax tree for Python with inference support." 111 | optional = false 112 | python-versions = "~=3.6" 113 | groups = ["dev"] 114 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 115 | files = [ 116 | {file = "astroid-2.8.0-py3-none-any.whl", hash = "sha256:dcc06f6165f415220013801642bd6c9808a02967070919c4b746c6864c205471"}, 117 | {file = "astroid-2.8.0.tar.gz", hash = "sha256:fe81f80c0b35264acb5653302ffbd935d394f1775c5e4487df745bf9c2442708"}, 118 | ] 119 | 120 | [package.dependencies] 121 | lazy-object-proxy = ">=1.4.0" 122 | setuptools = ">=20.0" 123 | typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} 124 | wrapt = ">=1.11,<1.13" 125 | 126 | [[package]] 127 | name = "attrs" 128 | version = "25.3.0" 129 | description = "Classes Without Boilerplate" 130 | optional = false 131 | python-versions = ">=3.8" 132 | groups = ["dev"] 133 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 134 | files = [ 135 | {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, 136 | {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, 137 | ] 138 | 139 | [package.extras] 140 | benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] 141 | cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] 142 | dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] 143 | docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] 144 | tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] 145 | tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] 146 | 147 | [[package]] 148 | name = "autopep8" 149 | version = "1.5.7" 150 | description = "A tool that automatically formats Python code to conform to the PEP 8 style guide" 151 | optional = false 152 | python-versions = "*" 153 | groups = ["dev"] 154 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 155 | files = [ 156 | {file = "autopep8-1.5.7-py2.py3-none-any.whl", hash = "sha256:aa213493c30dcdac99537249ee65b24af0b2c29f2e83cd8b3f68760441ed0db9"}, 157 | {file = "autopep8-1.5.7.tar.gz", hash = "sha256:276ced7e9e3cb22e5d7c14748384a5cf5d9002257c0ed50c0e075b68011bb6d0"}, 158 | ] 159 | 160 | [package.dependencies] 161 | pycodestyle = ">=2.7.0" 162 | toml = "*" 163 | 164 | [[package]] 165 | name = "backports.entry-points-selectable" 166 | version = "1.1.0" 167 | description = "Compatibility shim providing selectable entry points for older implementations" 168 | optional = false 169 | python-versions = ">=2.7" 170 | groups = ["dev"] 171 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 172 | files = [ 173 | {file = "backports.entry_points_selectable-1.1.0-py2.py3-none-any.whl", hash = "sha256:a6d9a871cde5e15b4c4a53e3d43ba890cc6861ec1332c9c2428c92f977192acc"}, 174 | {file = "backports.entry_points_selectable-1.1.0.tar.gz", hash = "sha256:988468260ec1c196dab6ae1149260e2f5472c9110334e5d51adcb77867361f6a"}, 175 | ] 176 | 177 | [package.extras] 178 | docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] 179 | testing = ["pytest (>=4.6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\" and python_version < \"3.10\"", "pytest-checkdocs (>=2.4) ; python_version >= \"3\"", "pytest-cov", "pytest-enabler (>=1.0.1) ; python_version >= \"3\"", "pytest-flake8", "pytest-mypy ; platform_python_implementation != \"PyPy\" and python_version < \"3.10\" and python_version >= \"3\""] 180 | 181 | [[package]] 182 | name = "binaryornot" 183 | version = "0.4.4" 184 | description = "Ultra-lightweight pure Python package to check if a file is binary or text." 185 | optional = false 186 | python-versions = "*" 187 | groups = ["dev"] 188 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 189 | files = [ 190 | {file = "binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"}, 191 | {file = "binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061"}, 192 | ] 193 | 194 | [package.dependencies] 195 | chardet = ">=3.0.2" 196 | 197 | [[package]] 198 | name = "black" 199 | version = "24.10.0" 200 | description = "The uncompromising code formatter." 201 | optional = false 202 | python-versions = ">=3.9" 203 | groups = ["dev"] 204 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 205 | files = [ 206 | {file = "black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812"}, 207 | {file = "black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea"}, 208 | {file = "black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f"}, 209 | {file = "black-24.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e"}, 210 | {file = "black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad"}, 211 | {file = "black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50"}, 212 | {file = "black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392"}, 213 | {file = "black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175"}, 214 | {file = "black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3"}, 215 | {file = "black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65"}, 216 | {file = "black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f"}, 217 | {file = "black-24.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8"}, 218 | {file = "black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981"}, 219 | {file = "black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b"}, 220 | {file = "black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2"}, 221 | {file = "black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b"}, 222 | {file = "black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd"}, 223 | {file = "black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f"}, 224 | {file = "black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800"}, 225 | {file = "black-24.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7"}, 226 | {file = "black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d"}, 227 | {file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"}, 228 | ] 229 | 230 | [package.dependencies] 231 | click = ">=8.0.0" 232 | mypy-extensions = ">=0.4.3" 233 | packaging = ">=22.0" 234 | pathspec = ">=0.9.0" 235 | platformdirs = ">=2" 236 | tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} 237 | typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} 238 | 239 | [package.extras] 240 | colorama = ["colorama (>=0.4.3)"] 241 | d = ["aiohttp (>=3.10)"] 242 | jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] 243 | uvloop = ["uvloop (>=0.15.2)"] 244 | 245 | [[package]] 246 | name = "bracex" 247 | version = "2.1.1" 248 | description = "Bash style brace expander." 249 | optional = false 250 | python-versions = ">=3.6" 251 | groups = ["dev"] 252 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 253 | files = [ 254 | {file = "bracex-2.1.1-py3-none-any.whl", hash = "sha256:64e2a6d14de9c8e022cf40539ac8468ba7c4b99550a2b05fc87fd20e392e568f"}, 255 | {file = "bracex-2.1.1.tar.gz", hash = "sha256:01f715cd0ed7a622ec8b32322e715813f7574de531f09b70f6f3b2c10f682425"}, 256 | ] 257 | 258 | [[package]] 259 | name = "certifi" 260 | version = "2024.7.4" 261 | description = "Python package for providing Mozilla's CA Bundle." 262 | optional = false 263 | python-versions = ">=3.6" 264 | groups = ["dev"] 265 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 266 | files = [ 267 | {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, 268 | {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, 269 | ] 270 | 271 | [[package]] 272 | name = "cffi" 273 | version = "1.17.1" 274 | description = "Foreign Function Interface for Python calling C code." 275 | optional = false 276 | python-versions = ">=3.8" 277 | groups = ["main"] 278 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 279 | files = [ 280 | {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, 281 | {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, 282 | {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"}, 283 | {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"}, 284 | {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"}, 285 | {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"}, 286 | {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"}, 287 | {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"}, 288 | {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"}, 289 | {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"}, 290 | {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"}, 291 | {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"}, 292 | {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"}, 293 | {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"}, 294 | {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"}, 295 | {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"}, 296 | {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"}, 297 | {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"}, 298 | {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"}, 299 | {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"}, 300 | {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"}, 301 | {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"}, 302 | {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"}, 303 | {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"}, 304 | {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"}, 305 | {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"}, 306 | {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"}, 307 | {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"}, 308 | {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"}, 309 | {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"}, 310 | {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"}, 311 | {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"}, 312 | {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"}, 313 | {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"}, 314 | {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"}, 315 | {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"}, 316 | {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"}, 317 | {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"}, 318 | {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"}, 319 | {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"}, 320 | {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"}, 321 | {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"}, 322 | {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"}, 323 | {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"}, 324 | {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"}, 325 | {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"}, 326 | {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"}, 327 | {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"}, 328 | {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"}, 329 | {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"}, 330 | {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"}, 331 | {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"}, 332 | {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"}, 333 | {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"}, 334 | {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"}, 335 | {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"}, 336 | {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"}, 337 | {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"}, 338 | {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"}, 339 | {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"}, 340 | {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"}, 341 | {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"}, 342 | {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"}, 343 | {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"}, 344 | {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"}, 345 | {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"}, 346 | {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"}, 347 | ] 348 | 349 | [package.dependencies] 350 | pycparser = "*" 351 | 352 | [[package]] 353 | name = "chardet" 354 | version = "4.0.0" 355 | description = "Universal encoding detector for Python 2 and 3" 356 | optional = false 357 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 358 | groups = ["dev"] 359 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 360 | files = [ 361 | {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, 362 | {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, 363 | ] 364 | 365 | [[package]] 366 | name = "charset-normalizer" 367 | version = "2.0.6" 368 | description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." 369 | optional = false 370 | python-versions = ">=3.5.0" 371 | groups = ["dev"] 372 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 373 | files = [ 374 | {file = "charset-normalizer-2.0.6.tar.gz", hash = "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f"}, 375 | {file = "charset_normalizer-2.0.6-py3-none-any.whl", hash = "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6"}, 376 | ] 377 | 378 | [package.extras] 379 | unicode-backport = ["unicodedata2"] 380 | 381 | [[package]] 382 | name = "click" 383 | version = "8.0.1" 384 | description = "Composable command line interface toolkit" 385 | optional = false 386 | python-versions = ">=3.6" 387 | groups = ["dev"] 388 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 389 | files = [ 390 | {file = "click-8.0.1-py3-none-any.whl", hash = "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"}, 391 | {file = "click-8.0.1.tar.gz", hash = "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a"}, 392 | ] 393 | 394 | [package.dependencies] 395 | colorama = {version = "*", markers = "platform_system == \"Windows\""} 396 | 397 | [[package]] 398 | name = "click-help-colors" 399 | version = "0.9.1" 400 | description = "Colorization of help messages in Click" 401 | optional = false 402 | python-versions = "*" 403 | groups = ["dev"] 404 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 405 | files = [ 406 | {file = "click-help-colors-0.9.1.tar.gz", hash = "sha256:78cbcf30cfa81c5fc2a52f49220121e1a8190cd19197d9245997605d3405824d"}, 407 | {file = "click_help_colors-0.9.1-py3-none-any.whl", hash = "sha256:25a6bd22d8abbc72c18a416a1cf21ab65b6120bee48e9637829666cbad22d51d"}, 408 | ] 409 | 410 | [package.dependencies] 411 | click = ">=7.0,<9" 412 | 413 | [package.extras] 414 | dev = ["pytest"] 415 | 416 | [[package]] 417 | name = "colorama" 418 | version = "0.4.4" 419 | description = "Cross-platform colored terminal text." 420 | optional = false 421 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 422 | groups = ["dev"] 423 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 424 | files = [ 425 | {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, 426 | {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, 427 | ] 428 | 429 | [[package]] 430 | name = "commonmark" 431 | version = "0.9.1" 432 | description = "Python parser for the CommonMark Markdown spec" 433 | optional = false 434 | python-versions = "*" 435 | groups = ["dev"] 436 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 437 | files = [ 438 | {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, 439 | {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, 440 | ] 441 | 442 | [package.extras] 443 | test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] 444 | 445 | [[package]] 446 | name = "cookiecutter" 447 | version = "1.7.3" 448 | description = "A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template." 449 | optional = false 450 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 451 | groups = ["dev"] 452 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 453 | files = [ 454 | {file = "cookiecutter-1.7.3-py2.py3-none-any.whl", hash = "sha256:f8671531fa96ab14339d0c59b4f662a4f12a2ecacd94a0f70a3500843da588e2"}, 455 | {file = "cookiecutter-1.7.3.tar.gz", hash = "sha256:6b9a4d72882e243be077a7397d0f1f76fe66cf3df91f3115dbb5330e214fa457"}, 456 | ] 457 | 458 | [package.dependencies] 459 | binaryornot = ">=0.4.4" 460 | click = ">=7.0" 461 | Jinja2 = ">=2.7,<4.0.0" 462 | jinja2-time = ">=0.2.0" 463 | poyo = ">=0.5.0" 464 | python-slugify = ">=4.0.0" 465 | requests = ">=2.23.0" 466 | six = ">=1.10" 467 | 468 | [[package]] 469 | name = "cryptography" 470 | version = "3.4.8" 471 | description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." 472 | optional = false 473 | python-versions = ">=3.6" 474 | groups = ["main"] 475 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 476 | files = [ 477 | {file = "cryptography-3.4.8-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14"}, 478 | {file = "cryptography-3.4.8-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:f44d141b8c4ea5eb4dbc9b3ad992d45580c1d22bf5e24363f2fbf50c2d7ae8a7"}, 479 | {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0a7dcbcd3f1913f664aca35d47c1331fce738d44ec34b7be8b9d332151b0b01e"}, 480 | {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"}, 481 | {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"}, 482 | {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"}, 483 | {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d"}, 484 | {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89"}, 485 | {file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"}, 486 | {file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"}, 487 | {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"}, 488 | {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a305600e7a6b7b855cd798e00278161b681ad6e9b7eca94c721d5f588ab212af"}, 489 | {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3fa3a7ccf96e826affdf1a0a9432be74dc73423125c8f96a909e3835a5ef194a"}, 490 | {file = "cryptography-3.4.8-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9ec0e67a14f9d1d48dd87a2531009a9b251c02ea42851c060b25c782516ff06"}, 491 | {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b0fbfae7ff7febdb74b574055c7466da334a5371f253732d7e2e7525d570498"}, 492 | {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94fff993ee9bc1b2440d3b7243d488c6a3d9724cc2b09cdb297f6a886d040ef7"}, 493 | {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:8695456444f277af73a4877db9fc979849cd3ee74c198d04fc0776ebc3db52b9"}, 494 | {file = "cryptography-3.4.8-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:cd65b60cfe004790c795cc35f272e41a3df4631e2fb6b35aa7ac6ef2859d554e"}, 495 | {file = "cryptography-3.4.8.tar.gz", hash = "sha256:94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c"}, 496 | ] 497 | 498 | [package.dependencies] 499 | cffi = ">=1.12" 500 | 501 | [package.extras] 502 | docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"] 503 | docstest = ["doc8", "pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] 504 | pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"] 505 | sdist = ["setuptools-rust (>=0.11.4)"] 506 | ssh = ["bcrypt (>=3.1.5)"] 507 | test = ["hypothesis (>=1.11.4,!=3.79.2)", "iso8601", "pretend", "pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pytz"] 508 | 509 | [[package]] 510 | name = "distlib" 511 | version = "0.3.3" 512 | description = "Distribution utilities" 513 | optional = false 514 | python-versions = "*" 515 | groups = ["dev"] 516 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 517 | files = [ 518 | {file = "distlib-0.3.3-py2.py3-none-any.whl", hash = "sha256:c8b54e8454e5bf6237cc84c20e8264c3e991e824ef27e8f1e81049867d861e31"}, 519 | {file = "distlib-0.3.3.zip", hash = "sha256:d982d0751ff6eaaab5e2ec8e691d949ee80eddf01a62eaa96ddb11531fe16b05"}, 520 | ] 521 | 522 | [[package]] 523 | name = "distro" 524 | version = "1.6.0" 525 | description = "Distro - an OS platform information API" 526 | optional = false 527 | python-versions = "*" 528 | groups = ["dev"] 529 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\"" 530 | files = [ 531 | {file = "distro-1.6.0-py2.py3-none-any.whl", hash = "sha256:c8713330ab31a034623a9515663ed87696700b55f04556b97c39cd261aa70dc7"}, 532 | {file = "distro-1.6.0.tar.gz", hash = "sha256:83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424"}, 533 | ] 534 | 535 | [[package]] 536 | name = "docker" 537 | version = "5.0.2" 538 | description = "A Python library for the Docker Engine API." 539 | optional = false 540 | python-versions = ">=3.6" 541 | groups = ["dev"] 542 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 543 | files = [ 544 | {file = "docker-5.0.2-py2.py3-none-any.whl", hash = "sha256:9b17f0723d83c1f3418d2aa17bf90b24dbe97deda06208dd4262fa30a6ee87eb"}, 545 | {file = "docker-5.0.2.tar.gz", hash = "sha256:21ec4998e90dff7a7aaaa098ca8d839c7de412b89e6f6c30908372d58fecf663"}, 546 | ] 547 | 548 | [package.dependencies] 549 | pywin32 = {version = "227", markers = "sys_platform == \"win32\""} 550 | requests = ">=2.14.2,<2.18.0 || >2.18.0" 551 | websocket-client = ">=0.32.0" 552 | 553 | [package.extras] 554 | ssh = ["paramiko (>=2.4.2)"] 555 | tls = ["cryptography (>=3.4.7)", "idna (>=2.0.0)", "pyOpenSSL (>=17.5.0)"] 556 | 557 | [[package]] 558 | name = "enrich" 559 | version = "1.2.7" 560 | description = "enrich" 561 | optional = false 562 | python-versions = ">=3.6" 563 | groups = ["dev"] 564 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 565 | files = [ 566 | {file = "enrich-1.2.7-py3-none-any.whl", hash = "sha256:f29b2c8c124b4dbd7c975ab5c3568f6c7a47938ea3b7d2106c8a3bd346545e4f"}, 567 | {file = "enrich-1.2.7.tar.gz", hash = "sha256:0a2ab0d2931dff8947012602d1234d2a3ee002d9a355b5d70be6bf5466008893"}, 568 | ] 569 | 570 | [package.dependencies] 571 | rich = ">=9.5.1" 572 | 573 | [package.extras] 574 | 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)"] 575 | 576 | [[package]] 577 | name = "filelock" 578 | version = "3.0.12" 579 | description = "A platform independent file lock." 580 | optional = false 581 | python-versions = "*" 582 | groups = ["dev"] 583 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 584 | files = [ 585 | {file = "filelock-3.0.12-py3-none-any.whl", hash = "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836"}, 586 | {file = "filelock-3.0.12.tar.gz", hash = "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59"}, 587 | ] 588 | 589 | [[package]] 590 | name = "flake8" 591 | version = "3.9.2" 592 | description = "the modular source code checker: pep8 pyflakes and co" 593 | optional = false 594 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 595 | groups = ["dev"] 596 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 597 | files = [ 598 | {file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"}, 599 | {file = "flake8-3.9.2.tar.gz", hash = "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b"}, 600 | ] 601 | 602 | [package.dependencies] 603 | mccabe = ">=0.6.0,<0.7.0" 604 | pycodestyle = ">=2.7.0,<2.8.0" 605 | pyflakes = ">=2.3.0,<2.4.0" 606 | 607 | [[package]] 608 | name = "ghp-import" 609 | version = "2.0.1" 610 | description = "Copy your docs directly to the gh-pages branch." 611 | optional = false 612 | python-versions = "*" 613 | groups = ["dev"] 614 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 615 | files = [ 616 | {file = "ghp-import-2.0.1.tar.gz", hash = "sha256:753de2eace6e0f7d4edfb3cce5e3c3b98cd52aadb80163303d1d036bda7b4483"}, 617 | {file = "ghp_import-2.0.1-py3-none-any.whl", hash = "sha256:8241a8e9f8dd3c1fafe9696e6e081b57a208ef907e9939c44e7415e407ab40ea"}, 618 | ] 619 | 620 | [package.dependencies] 621 | python-dateutil = ">=2.8.1" 622 | 623 | [package.extras] 624 | dev = ["flake8", "markdown", "twine", "wheel"] 625 | 626 | [[package]] 627 | name = "idna" 628 | version = "3.7" 629 | description = "Internationalized Domain Names in Applications (IDNA)" 630 | optional = false 631 | python-versions = ">=3.5" 632 | groups = ["dev"] 633 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 634 | files = [ 635 | {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, 636 | {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, 637 | ] 638 | 639 | [[package]] 640 | name = "importlib-metadata" 641 | version = "4.8.1" 642 | description = "Read metadata from Python packages" 643 | optional = false 644 | python-versions = ">=3.6" 645 | groups = ["dev"] 646 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 647 | files = [ 648 | {file = "importlib_metadata-4.8.1-py3-none-any.whl", hash = "sha256:b618b6d2d5ffa2f16add5697cf57a46c76a56229b0ed1c438322e4e95645bd15"}, 649 | {file = "importlib_metadata-4.8.1.tar.gz", hash = "sha256:f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1"}, 650 | ] 651 | 652 | [package.dependencies] 653 | zipp = ">=0.5" 654 | 655 | [package.extras] 656 | docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] 657 | perf = ["ipython"] 658 | testing = ["flufl.flake8", "importlib-resources (>=1.3) ; python_version < \"3.9\"", "packaging", "pep517", "pyfakefs", "pytest (>=4.6)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy ; platform_python_implementation != \"PyPy\"", "pytest-perf (>=0.9.2)"] 659 | 660 | [[package]] 661 | name = "importlib-resources" 662 | version = "5.0.7" 663 | description = "Read resources from Python packages" 664 | optional = false 665 | python-versions = ">=3.6" 666 | groups = ["main"] 667 | markers = "(sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\") and python_version < \"3.10\"" 668 | files = [ 669 | {file = "importlib_resources-5.0.7-py3-none-any.whl", hash = "sha256:2238159eb743bd85304a16e0536048b3e991c531d1cd51c4a834d1ccf2829057"}, 670 | {file = "importlib_resources-5.0.7.tar.gz", hash = "sha256:4df460394562b4581bb4e4087ad9447bd433148fba44241754ec3152499f1d1b"}, 671 | ] 672 | 673 | [package.extras] 674 | docs = ["jaraco.packaging (>=8.2)", "rst.linker (>=1.9)", "sphinx"] 675 | testing = ["pytest (>=3.5,!=3.7.3)", "pytest-black (>=0.3.7) ; platform_python_implementation != \"PyPy\"", "pytest-checkdocs (>=1.2.3)", "pytest-cov", "pytest-enabler", "pytest-flake8", "pytest-mypy ; platform_python_implementation != \"PyPy\""] 676 | 677 | [[package]] 678 | name = "isort" 679 | version = "5.9.3" 680 | description = "A Python utility / library to sort Python imports." 681 | optional = false 682 | python-versions = ">=3.6.1,<4.0" 683 | groups = ["dev"] 684 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 685 | files = [ 686 | {file = "isort-5.9.3-py3-none-any.whl", hash = "sha256:e17d6e2b81095c9db0a03a8025a957f334d6ea30b26f9ec70805411e5c7c81f2"}, 687 | {file = "isort-5.9.3.tar.gz", hash = "sha256:9c2ea1e62d871267b78307fe511c0838ba0da28698c5732d54e2790bf3ba9899"}, 688 | ] 689 | 690 | [package.extras] 691 | colors = ["colorama (>=0.4.3,<0.5.0)"] 692 | pipfile-deprecated-finder = ["pipreqs", "requirementslib"] 693 | plugins = ["setuptools"] 694 | requirements-deprecated-finder = ["pip-api", "pipreqs"] 695 | 696 | [[package]] 697 | name = "jinja2" 698 | version = "3.1.6" 699 | description = "A very fast and expressive template engine." 700 | optional = false 701 | python-versions = ">=3.7" 702 | groups = ["main", "dev"] 703 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 704 | files = [ 705 | {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, 706 | {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, 707 | ] 708 | 709 | [package.dependencies] 710 | MarkupSafe = ">=2.0" 711 | 712 | [package.extras] 713 | i18n = ["Babel (>=2.7)"] 714 | 715 | [[package]] 716 | name = "jinja2-time" 717 | version = "0.2.0" 718 | description = "Jinja2 Extension for Dates and Times" 719 | optional = false 720 | python-versions = "*" 721 | groups = ["dev"] 722 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 723 | files = [ 724 | {file = "jinja2-time-0.2.0.tar.gz", hash = "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40"}, 725 | {file = "jinja2_time-0.2.0-py2.py3-none-any.whl", hash = "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"}, 726 | ] 727 | 728 | [package.dependencies] 729 | arrow = "*" 730 | jinja2 = "*" 731 | 732 | [[package]] 733 | name = "jsonschema" 734 | version = "4.23.0" 735 | description = "An implementation of JSON Schema validation for Python" 736 | optional = false 737 | python-versions = ">=3.8" 738 | groups = ["dev"] 739 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 740 | files = [ 741 | {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, 742 | {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, 743 | ] 744 | 745 | [package.dependencies] 746 | attrs = ">=22.2.0" 747 | jsonschema-specifications = ">=2023.03.6" 748 | referencing = ">=0.28.4" 749 | rpds-py = ">=0.7.1" 750 | 751 | [package.extras] 752 | format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] 753 | format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] 754 | 755 | [[package]] 756 | name = "jsonschema-specifications" 757 | version = "2025.4.1" 758 | description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" 759 | optional = false 760 | python-versions = ">=3.9" 761 | groups = ["dev"] 762 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 763 | files = [ 764 | {file = "jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af"}, 765 | {file = "jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608"}, 766 | ] 767 | 768 | [package.dependencies] 769 | referencing = ">=0.31.0" 770 | 771 | [[package]] 772 | name = "lazy-object-proxy" 773 | version = "1.6.0" 774 | description = "A fast and thorough lazy object proxy." 775 | optional = false 776 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" 777 | groups = ["dev"] 778 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 779 | files = [ 780 | {file = "lazy-object-proxy-1.6.0.tar.gz", hash = "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726"}, 781 | {file = "lazy_object_proxy-1.6.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7b84f6b790be05b"}, 782 | {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win32.whl", hash = "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8cbd0e457b1256e"}, 783 | {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93"}, 784 | {file = "lazy_object_proxy-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220cfd4b15f14e741"}, 785 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2e00bd12bd1b587"}, 786 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae2c5a65eebbcde4"}, 787 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win32.whl", hash = "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c744a432e15c815f"}, 788 | {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dbaf9fae9f49891b3"}, 789 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dffc7b94b883aa981"}, 790 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a33debf00f6ede2"}, 791 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win32.whl", hash = "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9ec734b34b495fd"}, 792 | {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027ad4437a7ecc4837"}, 793 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7bef01ee26b339653"}, 794 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192b38fcc42bd43d3"}, 795 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-win32.whl", hash = "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21988b2eae2868e8"}, 796 | {file = "lazy_object_proxy-1.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9808fe0afccebdf"}, 797 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d93ce6ff9138bcad"}, 798 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979c0626b97ed8e43"}, 799 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19976592c5f3c77a"}, 800 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-win32.whl", hash = "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef72601021e64f61"}, 801 | {file = "lazy_object_proxy-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"}, 802 | ] 803 | 804 | [[package]] 805 | name = "markdown" 806 | version = "3.3.4" 807 | description = "Python implementation of Markdown." 808 | optional = false 809 | python-versions = ">=3.6" 810 | groups = ["dev"] 811 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 812 | files = [ 813 | {file = "Markdown-3.3.4-py3-none-any.whl", hash = "sha256:96c3ba1261de2f7547b46a00ea8463832c921d3f9d6aba3f255a6f71386db20c"}, 814 | {file = "Markdown-3.3.4.tar.gz", hash = "sha256:31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49"}, 815 | ] 816 | 817 | [package.extras] 818 | testing = ["coverage", "pyyaml"] 819 | 820 | [[package]] 821 | name = "markupsafe" 822 | version = "2.0.1" 823 | description = "Safely add untrusted strings to HTML/XML markup." 824 | optional = false 825 | python-versions = ">=3.6" 826 | groups = ["main", "dev"] 827 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 828 | files = [ 829 | {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, 830 | {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, 831 | {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, 832 | {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, 833 | {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, 834 | {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, 835 | {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, 836 | {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, 837 | {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, 838 | {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, 839 | {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, 840 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, 841 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, 842 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, 843 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, 844 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, 845 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, 846 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, 847 | {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, 848 | {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, 849 | {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, 850 | {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, 851 | {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, 852 | {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, 853 | {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, 854 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, 855 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, 856 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, 857 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, 858 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, 859 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, 860 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, 861 | {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, 862 | {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, 863 | {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, 864 | {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, 865 | {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, 866 | {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, 867 | {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, 868 | {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, 869 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, 870 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, 871 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, 872 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, 873 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, 874 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, 875 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, 876 | {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, 877 | {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, 878 | {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, 879 | {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, 880 | {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, 881 | {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, 882 | {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, 883 | {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, 884 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, 885 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, 886 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, 887 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, 888 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, 889 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, 890 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, 891 | {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, 892 | {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, 893 | {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, 894 | {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, 895 | {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, 896 | {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, 897 | {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, 898 | ] 899 | 900 | [[package]] 901 | name = "mccabe" 902 | version = "0.6.1" 903 | description = "McCabe checker, plugin for flake8" 904 | optional = false 905 | python-versions = "*" 906 | groups = ["dev"] 907 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 908 | files = [ 909 | {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, 910 | {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, 911 | ] 912 | 913 | [[package]] 914 | name = "mergedeep" 915 | version = "1.3.4" 916 | description = "A deep merge function for 🐍." 917 | optional = false 918 | python-versions = ">=3.6" 919 | groups = ["dev"] 920 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 921 | files = [ 922 | {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, 923 | {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, 924 | ] 925 | 926 | [[package]] 927 | name = "mkdocs" 928 | version = "1.2.2" 929 | description = "Project documentation with Markdown." 930 | optional = false 931 | python-versions = ">=3.6" 932 | groups = ["dev"] 933 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 934 | files = [ 935 | {file = "mkdocs-1.2.2-py3-none-any.whl", hash = "sha256:d019ff8e17ec746afeb54eb9eb4112b5e959597aebc971da46a5c9486137f0ff"}, 936 | {file = "mkdocs-1.2.2.tar.gz", hash = "sha256:a334f5bd98ec960638511366eb8c5abc9c99b9083a0ed2401d8791b112d6b078"}, 937 | ] 938 | 939 | [package.dependencies] 940 | click = ">=3.3" 941 | ghp-import = ">=1.0" 942 | importlib-metadata = ">=3.10" 943 | Jinja2 = ">=2.10.1" 944 | Markdown = ">=3.2.1" 945 | mergedeep = ">=1.3.4" 946 | packaging = ">=20.5" 947 | PyYAML = ">=3.10" 948 | pyyaml-env-tag = ">=0.1" 949 | watchdog = ">=2.0" 950 | 951 | [package.extras] 952 | i18n = ["babel (>=2.9.0)"] 953 | 954 | [[package]] 955 | name = "mkdocs-material" 956 | version = "7.3.0" 957 | description = "A Material Design theme for MkDocs" 958 | optional = false 959 | python-versions = "*" 960 | groups = ["dev"] 961 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 962 | files = [ 963 | {file = "mkdocs-material-7.3.0.tar.gz", hash = "sha256:07db0580fa96c3473aee99ec3fb4606a1a5a1e4f4467e64c0cd1ba8da5b6476e"}, 964 | {file = "mkdocs_material-7.3.0-py2.py3-none-any.whl", hash = "sha256:b183c27dc0f44e631bbc32c51057f61a3e2ba8b3c1080e59f944167eeba9ff1d"}, 965 | ] 966 | 967 | [package.dependencies] 968 | markdown = ">=3.2" 969 | mkdocs = ">=1.2.2" 970 | mkdocs-material-extensions = ">=1.0" 971 | Pygments = ">=2.4" 972 | pymdown-extensions = ">=7.0" 973 | 974 | [[package]] 975 | name = "mkdocs-material-extensions" 976 | version = "1.0.3" 977 | description = "Extension pack for Python Markdown." 978 | optional = false 979 | python-versions = ">=3.6" 980 | groups = ["dev"] 981 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 982 | files = [ 983 | {file = "mkdocs-material-extensions-1.0.3.tar.gz", hash = "sha256:bfd24dfdef7b41c312ede42648f9eb83476ea168ec163b613f9abd12bbfddba2"}, 984 | {file = "mkdocs_material_extensions-1.0.3-py3-none-any.whl", hash = "sha256:a82b70e533ce060b2a5d9eb2bc2e1be201cf61f901f93704b4acf6e3d5983a44"}, 985 | ] 986 | 987 | [[package]] 988 | name = "molecule" 989 | version = "4.0.4" 990 | description = "Molecule aids in the development and testing of Ansible roles" 991 | optional = false 992 | python-versions = ">=3.8" 993 | groups = ["dev"] 994 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 995 | files = [ 996 | {file = "molecule-4.0.4-py3-none-any.whl", hash = "sha256:437a0829c3273f542e0db09516ae743607e6a2eda4d8cbdfb407edda3e0facb2"}, 997 | {file = "molecule-4.0.4.tar.gz", hash = "sha256:aab00c1ba62a42d77edd1a51528dfbb46abca70df7c7147fda0925ee4fe7deda"}, 998 | ] 999 | 1000 | [package.dependencies] 1001 | ansible-compat = ">=2.2.0" 1002 | click = ">=8.0,<9" 1003 | click-help-colors = ">=0.9" 1004 | cookiecutter = ">=1.7.3" 1005 | enrich = ">=1.2.7" 1006 | Jinja2 = ">=2.11.3" 1007 | jsonschema = ">=4.9.1" 1008 | molecule-docker = {version = ">=1.0.0", optional = true, markers = "extra == \"docker\""} 1009 | packaging = "*" 1010 | pluggy = ">=0.7.1,<2.0" 1011 | PyYAML = ">=5.1" 1012 | rich = ">=9.5.1" 1013 | 1014 | [package.extras] 1015 | docker = ["molecule-docker (>=1.0.0)"] 1016 | 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)"] 1017 | lint = ["check-jsonschema (>=0.18.3)", "flake8 (>=3.8.4)", "jsonschema (>=4.16.0)", "pre-commit (>=2.10.1)", "yamllint"] 1018 | podman = ["molecule-podman (>=1.0.1)"] 1019 | 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)"] 1020 | windows = ["pywinrm"] 1021 | 1022 | [[package]] 1023 | name = "molecule-docker" 1024 | version = "1.0.2" 1025 | description = "Molecule aids in the development and testing of Ansible roles" 1026 | optional = false 1027 | python-versions = ">=3.6" 1028 | groups = ["dev"] 1029 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1030 | files = [ 1031 | {file = "molecule-docker-1.0.2.tar.gz", hash = "sha256:a16f3bb734eb1d5ec28fa3bb678854bda7cb142968467fc8f4f31a518cd4555f"}, 1032 | {file = "molecule_docker-1.0.2-py3-none-any.whl", hash = "sha256:b30000fca4658c71c4e6e938411e57c1dd0ea21add843351af7529016b786144"}, 1033 | ] 1034 | 1035 | [package.dependencies] 1036 | ansible-compat = ">=0.5.0" 1037 | docker = ">=4.3.1" 1038 | molecule = ">=3.4.0" 1039 | requests = "*" 1040 | selinux = {version = "*", markers = "sys_platform == \"linux\" or sys_platform == \"linux2\""} 1041 | 1042 | [package.extras] 1043 | docs = ["Sphinx", "simplejson", "sphinx-ansible-theme (>=0.2.2)"] 1044 | lint = ["pre-commit (>=1.21.0)"] 1045 | test = ["molecule[test]"] 1046 | 1047 | [[package]] 1048 | name = "mypy-extensions" 1049 | version = "0.4.3" 1050 | description = "Experimental type system extensions for programs checked with the mypy typechecker." 1051 | optional = false 1052 | python-versions = "*" 1053 | groups = ["dev"] 1054 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1055 | files = [ 1056 | {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, 1057 | {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, 1058 | ] 1059 | 1060 | [[package]] 1061 | name = "packaging" 1062 | version = "25.0" 1063 | description = "Core utilities for Python packages" 1064 | optional = false 1065 | python-versions = ">=3.8" 1066 | groups = ["main", "dev"] 1067 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1068 | files = [ 1069 | {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, 1070 | {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, 1071 | ] 1072 | 1073 | [[package]] 1074 | name = "pathspec" 1075 | version = "0.9.0" 1076 | description = "Utility library for gitignore style pattern matching of file paths." 1077 | optional = false 1078 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 1079 | groups = ["dev"] 1080 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1081 | files = [ 1082 | {file = "pathspec-0.9.0-py2.py3-none-any.whl", hash = "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a"}, 1083 | {file = "pathspec-0.9.0.tar.gz", hash = "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"}, 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "platformdirs" 1088 | version = "2.3.0" 1089 | description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." 1090 | optional = false 1091 | python-versions = ">=3.6" 1092 | groups = ["dev"] 1093 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1094 | files = [ 1095 | {file = "platformdirs-2.3.0-py3-none-any.whl", hash = "sha256:8003ac87717ae2c7ee1ea5a84a1a61e87f3fbd16eb5aadba194ea30a9019f648"}, 1096 | {file = "platformdirs-2.3.0.tar.gz", hash = "sha256:15b056538719b1c94bdaccb29e5f81879c7f7f0f4a153f46086d155dffcd4f0f"}, 1097 | ] 1098 | 1099 | [package.extras] 1100 | docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] 1101 | test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] 1102 | 1103 | [[package]] 1104 | name = "pluggy" 1105 | version = "0.13.1" 1106 | description = "plugin and hook calling mechanisms for python" 1107 | optional = false 1108 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 1109 | groups = ["dev"] 1110 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1111 | files = [ 1112 | {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, 1113 | {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, 1114 | ] 1115 | 1116 | [package.extras] 1117 | dev = ["pre-commit", "tox"] 1118 | 1119 | [[package]] 1120 | name = "poyo" 1121 | version = "0.5.0" 1122 | description = "A lightweight YAML Parser for Python. 🐓" 1123 | optional = false 1124 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 1125 | groups = ["dev"] 1126 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1127 | files = [ 1128 | {file = "poyo-0.5.0-py2.py3-none-any.whl", hash = "sha256:3e2ca8e33fdc3c411cd101ca395668395dd5dc7ac775b8e809e3def9f9fe041a"}, 1129 | {file = "poyo-0.5.0.tar.gz", hash = "sha256:e26956aa780c45f011ca9886f044590e2d8fd8b61db7b1c1cf4e0869f48ed4dd"}, 1130 | ] 1131 | 1132 | [[package]] 1133 | name = "py" 1134 | version = "1.10.0" 1135 | description = "library with cross-python path, ini-parsing, io, code, log facilities" 1136 | optional = false 1137 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 1138 | groups = ["dev"] 1139 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1140 | files = [ 1141 | {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, 1142 | {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, 1143 | ] 1144 | 1145 | [[package]] 1146 | name = "pycodestyle" 1147 | version = "2.7.0" 1148 | description = "Python style guide checker" 1149 | optional = false 1150 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 1151 | groups = ["dev"] 1152 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1153 | files = [ 1154 | {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, 1155 | {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, 1156 | ] 1157 | 1158 | [[package]] 1159 | name = "pycparser" 1160 | version = "2.20" 1161 | description = "C parser in Python" 1162 | optional = false 1163 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 1164 | groups = ["main"] 1165 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1166 | files = [ 1167 | {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, 1168 | {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, 1169 | ] 1170 | 1171 | [[package]] 1172 | name = "pyflakes" 1173 | version = "2.3.1" 1174 | description = "passive checker of Python programs" 1175 | optional = false 1176 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" 1177 | groups = ["dev"] 1178 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1179 | files = [ 1180 | {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, 1181 | {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, 1182 | ] 1183 | 1184 | [[package]] 1185 | name = "pygments" 1186 | version = "2.10.0" 1187 | description = "Pygments is a syntax highlighting package written in Python." 1188 | optional = false 1189 | python-versions = ">=3.5" 1190 | groups = ["dev"] 1191 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1192 | files = [ 1193 | {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"}, 1194 | {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"}, 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "pylint" 1199 | version = "2.11.1" 1200 | description = "python code static checker" 1201 | optional = false 1202 | python-versions = "~=3.6" 1203 | groups = ["dev"] 1204 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1205 | files = [ 1206 | {file = "pylint-2.11.1-py3-none-any.whl", hash = "sha256:0f358e221c45cbd4dad2a1e4b883e75d28acdcccd29d40c76eb72b307269b126"}, 1207 | {file = "pylint-2.11.1.tar.gz", hash = "sha256:2c9843fff1a88ca0ad98a256806c82c5a8f86086e7ccbdb93297d86c3f90c436"}, 1208 | ] 1209 | 1210 | [package.dependencies] 1211 | astroid = ">=2.8.0,<2.9" 1212 | colorama = {version = "*", markers = "sys_platform == \"win32\""} 1213 | isort = ">=4.2.5,<6" 1214 | mccabe = ">=0.6,<0.7" 1215 | platformdirs = ">=2.2.0" 1216 | toml = ">=0.7.1" 1217 | typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} 1218 | 1219 | [[package]] 1220 | name = "pymdown-extensions" 1221 | version = "8.2" 1222 | description = "Extension pack for Python Markdown." 1223 | optional = false 1224 | python-versions = ">=3.6" 1225 | groups = ["dev"] 1226 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1227 | files = [ 1228 | {file = "pymdown-extensions-8.2.tar.gz", hash = "sha256:b6daa94aad9e1310f9c64c8b1f01e4ce82937ab7eb53bfc92876a97aca02a6f4"}, 1229 | {file = "pymdown_extensions-8.2-py3-none-any.whl", hash = "sha256:141452d8ed61165518f2c923454bf054866b85cf466feedb0eb68f04acdc2560"}, 1230 | ] 1231 | 1232 | [package.dependencies] 1233 | Markdown = ">=3.2" 1234 | 1235 | [[package]] 1236 | name = "python-dateutil" 1237 | version = "2.8.2" 1238 | description = "Extensions to the standard Python datetime module" 1239 | optional = false 1240 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 1241 | groups = ["dev"] 1242 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1243 | files = [ 1244 | {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, 1245 | {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, 1246 | ] 1247 | 1248 | [package.dependencies] 1249 | six = ">=1.5" 1250 | 1251 | [[package]] 1252 | name = "python-slugify" 1253 | version = "5.0.2" 1254 | description = "A Python Slugify application that handles Unicode" 1255 | optional = false 1256 | python-versions = ">=3.6" 1257 | groups = ["dev"] 1258 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1259 | files = [ 1260 | {file = "python-slugify-5.0.2.tar.gz", hash = "sha256:f13383a0b9fcbe649a1892b9c8eb4f8eab1d6d84b84bb7a624317afa98159cab"}, 1261 | {file = "python_slugify-5.0.2-py2.py3-none-any.whl", hash = "sha256:6d8c5df75cd4a7c3a2d21e257633de53f52ab0265cd2d1dc62a730e8194a7380"}, 1262 | ] 1263 | 1264 | [package.dependencies] 1265 | text-unidecode = ">=1.3" 1266 | 1267 | [package.extras] 1268 | unidecode = ["Unidecode (>=1.1.1)"] 1269 | 1270 | [[package]] 1271 | name = "pywin32" 1272 | version = "227" 1273 | description = "Python for Window Extensions" 1274 | optional = false 1275 | python-versions = "*" 1276 | groups = ["dev"] 1277 | markers = "sys_platform == \"win32\"" 1278 | files = [ 1279 | {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"}, 1280 | {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"}, 1281 | {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"}, 1282 | {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"}, 1283 | {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"}, 1284 | {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"}, 1285 | {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"}, 1286 | {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"}, 1287 | {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"}, 1288 | {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"}, 1289 | {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"}, 1290 | {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"}, 1291 | ] 1292 | 1293 | [[package]] 1294 | name = "pyyaml" 1295 | version = "6.0.2" 1296 | description = "YAML parser and emitter for Python" 1297 | optional = false 1298 | python-versions = ">=3.8" 1299 | groups = ["main", "dev"] 1300 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1301 | files = [ 1302 | {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, 1303 | {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, 1304 | {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, 1305 | {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, 1306 | {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, 1307 | {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, 1308 | {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, 1309 | {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, 1310 | {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, 1311 | {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, 1312 | {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, 1313 | {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, 1314 | {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, 1315 | {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, 1316 | {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, 1317 | {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, 1318 | {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, 1319 | {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, 1320 | {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, 1321 | {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, 1322 | {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, 1323 | {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, 1324 | {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, 1325 | {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, 1326 | {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, 1327 | {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, 1328 | {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, 1329 | {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, 1330 | {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, 1331 | {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, 1332 | {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, 1333 | {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, 1334 | {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, 1335 | {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, 1336 | {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, 1337 | {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, 1338 | {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, 1339 | {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, 1340 | {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, 1341 | {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, 1342 | {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, 1343 | {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, 1344 | {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, 1345 | {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, 1346 | {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, 1347 | {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, 1348 | {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, 1349 | {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, 1350 | {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, 1351 | {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, 1352 | {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, 1353 | {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, 1354 | {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, 1355 | ] 1356 | 1357 | [[package]] 1358 | name = "pyyaml-env-tag" 1359 | version = "0.1" 1360 | description = "A custom YAML tag for referencing environment variables in YAML files. " 1361 | optional = false 1362 | python-versions = ">=3.6" 1363 | groups = ["dev"] 1364 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1365 | files = [ 1366 | {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, 1367 | {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, 1368 | ] 1369 | 1370 | [package.dependencies] 1371 | pyyaml = "*" 1372 | 1373 | [[package]] 1374 | name = "referencing" 1375 | version = "0.36.0" 1376 | description = "JSON Referencing + Python" 1377 | optional = false 1378 | python-versions = ">=3.9" 1379 | groups = ["dev"] 1380 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1381 | files = [ 1382 | {file = "referencing-0.36.0-py3-none-any.whl", hash = "sha256:01fc2916bab821aa3284d645bbbb41ba39609e7ff47072416a39ec2fb04d10d9"}, 1383 | {file = "referencing-0.36.0.tar.gz", hash = "sha256:246db964bb6101905167895cd66499cfb2aabc5f83277d008c52afe918ef29ba"}, 1384 | ] 1385 | 1386 | [package.dependencies] 1387 | attrs = ">=22.2.0" 1388 | rpds-py = ">=0.7.0" 1389 | typing-extensions = {version = "*", markers = "python_version < \"3.13\""} 1390 | 1391 | [[package]] 1392 | name = "requests" 1393 | version = "2.32.2" 1394 | description = "Python HTTP for Humans." 1395 | optional = false 1396 | python-versions = ">=3.8" 1397 | groups = ["dev"] 1398 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1399 | files = [ 1400 | {file = "requests-2.32.2-py3-none-any.whl", hash = "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c"}, 1401 | {file = "requests-2.32.2.tar.gz", hash = "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289"}, 1402 | ] 1403 | 1404 | [package.dependencies] 1405 | certifi = ">=2017.4.17" 1406 | charset-normalizer = ">=2,<4" 1407 | idna = ">=2.5,<4" 1408 | urllib3 = ">=1.21.1,<3" 1409 | 1410 | [package.extras] 1411 | socks = ["PySocks (>=1.5.6,!=1.5.7)"] 1412 | use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] 1413 | 1414 | [[package]] 1415 | name = "resolvelib" 1416 | version = "0.5.5" 1417 | description = "Resolve abstract dependencies into concrete ones" 1418 | optional = false 1419 | python-versions = "*" 1420 | groups = ["main"] 1421 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1422 | files = [ 1423 | {file = "resolvelib-0.5.5-py2.py3-none-any.whl", hash = "sha256:b0143b9d074550a6c5163a0f587e49c49017434e3cdfe853941725f5455dd29c"}, 1424 | {file = "resolvelib-0.5.5.tar.gz", hash = "sha256:123de56548c90df85137425a3f51eb93df89e2ba719aeb6a8023c032758be950"}, 1425 | ] 1426 | 1427 | [package.extras] 1428 | examples = ["html5lib", "packaging", "pygraphviz", "requests"] 1429 | lint = ["black", "flake8"] 1430 | release = ["setl", "towncrier"] 1431 | test = ["commentjson", "packaging", "pytest"] 1432 | 1433 | [[package]] 1434 | name = "rich" 1435 | version = "10.11.0" 1436 | description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" 1437 | optional = false 1438 | python-versions = ">=3.6,<4.0" 1439 | groups = ["dev"] 1440 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1441 | files = [ 1442 | {file = "rich-10.11.0-py3-none-any.whl", hash = "sha256:44bb3f9553d00b3c8938abf89828df870322b9ba43caf3b12bb7758debdc6dec"}, 1443 | {file = "rich-10.11.0.tar.gz", hash = "sha256:016fa105f34b69c434e7f908bb5bd7fefa9616efdb218a2917117683a6394ce5"}, 1444 | ] 1445 | 1446 | [package.dependencies] 1447 | colorama = ">=0.4.0,<0.5.0" 1448 | commonmark = ">=0.9.0,<0.10.0" 1449 | pygments = ">=2.6.0,<3.0.0" 1450 | 1451 | [package.extras] 1452 | jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] 1453 | 1454 | [[package]] 1455 | name = "rpds-py" 1456 | version = "0.24.0" 1457 | description = "Python bindings to Rust's persistent data structures (rpds)" 1458 | optional = false 1459 | python-versions = ">=3.9" 1460 | groups = ["dev"] 1461 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1462 | files = [ 1463 | {file = "rpds_py-0.24.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:006f4342fe729a368c6df36578d7a348c7c716be1da0a1a0f86e3021f8e98724"}, 1464 | {file = "rpds_py-0.24.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2d53747da70a4e4b17f559569d5f9506420966083a31c5fbd84e764461c4444b"}, 1465 | {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8acd55bd5b071156bae57b555f5d33697998752673b9de554dd82f5b5352727"}, 1466 | {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7e80d375134ddb04231a53800503752093dbb65dad8dabacce2c84cccc78e964"}, 1467 | {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60748789e028d2a46fc1c70750454f83c6bdd0d05db50f5ae83e2db500b34da5"}, 1468 | {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e1daf5bf6c2be39654beae83ee6b9a12347cb5aced9a29eecf12a2d25fff664"}, 1469 | {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b221c2457d92a1fb3c97bee9095c874144d196f47c038462ae6e4a14436f7bc"}, 1470 | {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:66420986c9afff67ef0c5d1e4cdc2d0e5262f53ad11e4f90e5e22448df485bf0"}, 1471 | {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:43dba99f00f1d37b2a0265a259592d05fcc8e7c19d140fe51c6e6f16faabeb1f"}, 1472 | {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a88c0d17d039333a41d9bf4616bd062f0bd7aa0edeb6cafe00a2fc2a804e944f"}, 1473 | {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc31e13ce212e14a539d430428cd365e74f8b2d534f8bc22dd4c9c55b277b875"}, 1474 | {file = "rpds_py-0.24.0-cp310-cp310-win32.whl", hash = "sha256:fc2c1e1b00f88317d9de6b2c2b39b012ebbfe35fe5e7bef980fd2a91f6100a07"}, 1475 | {file = "rpds_py-0.24.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0145295ca415668420ad142ee42189f78d27af806fcf1f32a18e51d47dd2052"}, 1476 | {file = "rpds_py-0.24.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef"}, 1477 | {file = "rpds_py-0.24.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97"}, 1478 | {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e"}, 1479 | {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d"}, 1480 | {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586"}, 1481 | {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4"}, 1482 | {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae"}, 1483 | {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc"}, 1484 | {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c"}, 1485 | {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c"}, 1486 | {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718"}, 1487 | {file = "rpds_py-0.24.0-cp311-cp311-win32.whl", hash = "sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a"}, 1488 | {file = "rpds_py-0.24.0-cp311-cp311-win_amd64.whl", hash = "sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6"}, 1489 | {file = "rpds_py-0.24.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205"}, 1490 | {file = "rpds_py-0.24.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7"}, 1491 | {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9"}, 1492 | {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e"}, 1493 | {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda"}, 1494 | {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e"}, 1495 | {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029"}, 1496 | {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9"}, 1497 | {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7"}, 1498 | {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91"}, 1499 | {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56"}, 1500 | {file = "rpds_py-0.24.0-cp312-cp312-win32.whl", hash = "sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30"}, 1501 | {file = "rpds_py-0.24.0-cp312-cp312-win_amd64.whl", hash = "sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034"}, 1502 | {file = "rpds_py-0.24.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c"}, 1503 | {file = "rpds_py-0.24.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c"}, 1504 | {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240"}, 1505 | {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8"}, 1506 | {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8"}, 1507 | {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b"}, 1508 | {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d"}, 1509 | {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7"}, 1510 | {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad"}, 1511 | {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120"}, 1512 | {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9"}, 1513 | {file = "rpds_py-0.24.0-cp313-cp313-win32.whl", hash = "sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143"}, 1514 | {file = "rpds_py-0.24.0-cp313-cp313-win_amd64.whl", hash = "sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a"}, 1515 | {file = "rpds_py-0.24.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114"}, 1516 | {file = "rpds_py-0.24.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405"}, 1517 | {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47"}, 1518 | {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272"}, 1519 | {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd"}, 1520 | {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a"}, 1521 | {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d"}, 1522 | {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7"}, 1523 | {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d"}, 1524 | {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797"}, 1525 | {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c"}, 1526 | {file = "rpds_py-0.24.0-cp313-cp313t-win32.whl", hash = "sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba"}, 1527 | {file = "rpds_py-0.24.0-cp313-cp313t-win_amd64.whl", hash = "sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350"}, 1528 | {file = "rpds_py-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d"}, 1529 | {file = "rpds_py-0.24.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e"}, 1530 | {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65"}, 1531 | {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b"}, 1532 | {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791"}, 1533 | {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9"}, 1534 | {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c"}, 1535 | {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58"}, 1536 | {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124"}, 1537 | {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149"}, 1538 | {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45"}, 1539 | {file = "rpds_py-0.24.0-cp39-cp39-win32.whl", hash = "sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103"}, 1540 | {file = "rpds_py-0.24.0-cp39-cp39-win_amd64.whl", hash = "sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f"}, 1541 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a"}, 1542 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399"}, 1543 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098"}, 1544 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:208b3a70a98cf3710e97cabdc308a51cd4f28aa6e7bb11de3d56cd8b74bab98d"}, 1545 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbc4362e06f950c62cad3d4abf1191021b2ffaf0b31ac230fbf0526453eee75e"}, 1546 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ebea2821cdb5f9fef44933617be76185b80150632736f3d76e54829ab4a3b4d1"}, 1547 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4df06c35465ef4d81799999bba810c68d29972bf1c31db61bfdb81dd9d5bb"}, 1548 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3aa13bdf38630da298f2e0d77aca967b200b8cc1473ea05248f6c5e9c9bdb44"}, 1549 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:041f00419e1da7a03c46042453598479f45be3d787eb837af382bfc169c0db33"}, 1550 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8754d872a5dfc3c5bf9c0e059e8107451364a30d9fd50f1f1a85c4fb9481164"}, 1551 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:896c41007931217a343eff197c34513c154267636c8056fb409eafd494c3dcdc"}, 1552 | {file = "rpds_py-0.24.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:92558d37d872e808944c3c96d0423b8604879a3d1c86fdad508d7ed91ea547d5"}, 1553 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d"}, 1554 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a"}, 1555 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5"}, 1556 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d"}, 1557 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793"}, 1558 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba"}, 1559 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea"}, 1560 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032"}, 1561 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d"}, 1562 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25"}, 1563 | {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba"}, 1564 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6"}, 1565 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb"}, 1566 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1"}, 1567 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83"}, 1568 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046"}, 1569 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391"}, 1570 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3"}, 1571 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78"}, 1572 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3"}, 1573 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd"}, 1574 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796"}, 1575 | {file = "rpds_py-0.24.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f"}, 1576 | {file = "rpds_py-0.24.0.tar.gz", hash = "sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e"}, 1577 | ] 1578 | 1579 | [[package]] 1580 | name = "ruamel.yaml" 1581 | version = "0.17.16" 1582 | description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" 1583 | optional = false 1584 | python-versions = ">=3" 1585 | groups = ["dev"] 1586 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1587 | files = [ 1588 | {file = "ruamel.yaml-0.17.16-py3-none-any.whl", hash = "sha256:ea21da1198c4b41b8e7a259301cc9710d3b972bf8ba52f06218478e6802dd1f1"}, 1589 | {file = "ruamel.yaml-0.17.16.tar.gz", hash = "sha256:1a771fc92d3823682b7f0893ad56cb5a5c87c48e62b5399d6f42c8759a583b33"}, 1590 | ] 1591 | 1592 | [package.dependencies] 1593 | "ruamel.yaml.clib" = {version = ">=0.1.2", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.10\""} 1594 | 1595 | [package.extras] 1596 | docs = ["ryd"] 1597 | jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] 1598 | 1599 | [[package]] 1600 | name = "ruamel.yaml.clib" 1601 | version = "0.2.6" 1602 | description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" 1603 | optional = false 1604 | python-versions = ">=3.5" 1605 | groups = ["dev"] 1606 | markers = "(sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\") and platform_python_implementation == \"CPython\" and python_version < \"3.10\"" 1607 | files = [ 1608 | {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6e7be2c5bcb297f5b82fee9c665eb2eb7001d1050deaba8471842979293a80b0"}, 1609 | {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:066f886bc90cc2ce44df8b5f7acfc6a7e2b2e672713f027136464492b0c34d7c"}, 1610 | {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:221eca6f35076c6ae472a531afa1c223b9c29377e62936f61bc8e6e8bdc5f9e7"}, 1611 | {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win32.whl", hash = "sha256:1070ba9dd7f9370d0513d649420c3b362ac2d687fe78c6e888f5b12bf8bc7bee"}, 1612 | {file = "ruamel.yaml.clib-0.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:77df077d32921ad46f34816a9a16e6356d8100374579bc35e15bab5d4e9377de"}, 1613 | {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:cfdb9389d888c5b74af297e51ce357b800dd844898af9d4a547ffc143fa56751"}, 1614 | {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b2927e92feb51d830f531de4ccb11b320255ee95e791022555971c466af4527"}, 1615 | {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win32.whl", hash = "sha256:ada3f400d9923a190ea8b59c8f60680c4ef8a4b0dfae134d2f2ff68429adfab5"}, 1616 | {file = "ruamel.yaml.clib-0.2.6-cp35-cp35m-win_amd64.whl", hash = "sha256:de9c6b8a1ba52919ae919f3ae96abb72b994dd0350226e28f3686cb4f142165c"}, 1617 | {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d67f273097c368265a7b81e152e07fb90ed395df6e552b9fa858c6d2c9f42502"}, 1618 | {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:72a2b8b2ff0a627496aad76f37a652bcef400fd861721744201ef1b45199ab78"}, 1619 | {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d3c620a54748a3d4cf0bcfe623e388407c8e85a4b06b8188e126302bcab93ea8"}, 1620 | {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:9efef4aab5353387b07f6b22ace0867032b900d8e91674b5d8ea9150db5cae94"}, 1621 | {file = "ruamel.yaml.clib-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:846fc8336443106fe23f9b6d6b8c14a53d38cef9a375149d61f99d78782ea468"}, 1622 | {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0847201b767447fc33b9c235780d3aa90357d20dd6108b92be544427bea197dd"}, 1623 | {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:78988ed190206672da0f5d50c61afef8f67daa718d614377dcd5e3ed85ab4a99"}, 1624 | {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:210c8fcfeff90514b7133010bf14e3bad652c8efde6b20e00c43854bf94fa5a6"}, 1625 | {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:a49e0161897901d1ac9c4a79984b8410f450565bbad64dbfcbf76152743a0cdb"}, 1626 | {file = "ruamel.yaml.clib-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:bf75d28fa071645c529b5474a550a44686821decebdd00e21127ef1fd566eabe"}, 1627 | {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a32f8d81ea0c6173ab1b3da956869114cae53ba1e9f72374032e33ba3118c233"}, 1628 | {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7f7ecb53ae6848f959db6ae93bdff1740e651809780822270eab111500842a84"}, 1629 | {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:61bc5e5ca632d95925907c569daa559ea194a4d16084ba86084be98ab1cec1c6"}, 1630 | {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win32.whl", hash = "sha256:89221ec6d6026f8ae859c09b9718799fea22c0e8da8b766b0b2c9a9ba2db326b"}, 1631 | {file = "ruamel.yaml.clib-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:31ea73e564a7b5fbbe8188ab8b334393e06d997914a4e184975348f204790277"}, 1632 | {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dc6a613d6c74eef5a14a214d433d06291526145431c3b964f5e16529b1842bed"}, 1633 | {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1866cf2c284a03b9524a5cc00daca56d80057c5ce3cdc86a52020f4c720856f0"}, 1634 | {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1b4139a6ffbca8ef60fdaf9b33dec05143ba746a6f0ae0f9d11d38239211d335"}, 1635 | {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win32.whl", hash = "sha256:3fb9575a5acd13031c57a62cc7823e5d2ff8bc3835ba4d94b921b4e6ee664104"}, 1636 | {file = "ruamel.yaml.clib-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:825d5fccef6da42f3c8eccd4281af399f21c02b32d98e113dbc631ea6a6ecbc7"}, 1637 | {file = "ruamel.yaml.clib-0.2.6.tar.gz", hash = "sha256:4ff604ce439abb20794f05613c374759ce10e3595d1867764dd1ae675b85acbd"}, 1638 | ] 1639 | 1640 | [[package]] 1641 | name = "selinux" 1642 | version = "0.2.1" 1643 | description = "shim selinux module" 1644 | optional = false 1645 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" 1646 | groups = ["dev"] 1647 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\"" 1648 | files = [ 1649 | {file = "selinux-0.2.1-py2.py3-none-any.whl", hash = "sha256:820adcf1b4451c9cc7759848797703263ba0eb6a4cad76d73548a9e0d57b7926"}, 1650 | {file = "selinux-0.2.1.tar.gz", hash = "sha256:d435f514e834e3fdc0941f6a29d086b80b2ea51b28112aee6254bd104ee42a74"}, 1651 | ] 1652 | 1653 | [package.dependencies] 1654 | distro = ">=1.3.0" 1655 | setuptools = ">=39.0" 1656 | 1657 | [[package]] 1658 | name = "setuptools" 1659 | version = "80.0.0" 1660 | description = "Easily download, build, install, upgrade, and uninstall Python packages" 1661 | optional = false 1662 | python-versions = ">=3.9" 1663 | groups = ["dev"] 1664 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1665 | files = [ 1666 | {file = "setuptools-80.0.0-py3-none-any.whl", hash = "sha256:a38f898dcd6e5380f4da4381a87ec90bd0a7eec23d204a5552e80ee3cab6bd27"}, 1667 | {file = "setuptools-80.0.0.tar.gz", hash = "sha256:c40a5b3729d58dd749c0f08f1a07d134fb8a0a3d7f87dc33e7c5e1f762138650"}, 1668 | ] 1669 | 1670 | [package.extras] 1671 | check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""] 1672 | core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] 1673 | cover = ["pytest-cov"] 1674 | doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] 1675 | enabler = ["pytest-enabler (>=2.2)"] 1676 | test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] 1677 | type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.14.*)", "pytest-mypy"] 1678 | 1679 | [[package]] 1680 | name = "six" 1681 | version = "1.16.0" 1682 | description = "Python 2 and 3 compatibility utilities" 1683 | optional = false 1684 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 1685 | groups = ["dev"] 1686 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1687 | files = [ 1688 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, 1689 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, 1690 | ] 1691 | 1692 | [[package]] 1693 | name = "subprocess-tee" 1694 | version = "0.4.2" 1695 | description = "subprocess-tee" 1696 | optional = false 1697 | python-versions = ">=3.8" 1698 | groups = ["dev"] 1699 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1700 | files = [ 1701 | {file = "subprocess_tee-0.4.2-py3-none-any.whl", hash = "sha256:21942e976715af4a19a526918adb03a8a27a8edab959f2d075b777e3d78f532d"}, 1702 | {file = "subprocess_tee-0.4.2.tar.gz", hash = "sha256:91b2b4da3aae9a7088d84acaf2ea0abee3f4fd9c0d2eae69a9b9122a71476590"}, 1703 | ] 1704 | 1705 | [package.extras] 1706 | docs = ["argparse-manpage", "cairosvg", "markdown-include", "mkdocs", "mkdocs-git-revision-date-localized-plugin", "mkdocs-material", "mkdocs-material-extensions", "mkdocstrings", "mkdocstrings-python", "pillow", "pymdown-extensions"] 1707 | 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)"] 1708 | 1709 | [[package]] 1710 | name = "tenacity" 1711 | version = "8.0.1" 1712 | description = "Retry code until it succeeds" 1713 | optional = false 1714 | python-versions = ">=3.6" 1715 | groups = ["dev"] 1716 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1717 | files = [ 1718 | {file = "tenacity-8.0.1-py3-none-any.whl", hash = "sha256:f78f4ea81b0fabc06728c11dc2a8c01277bfc5181b321a4770471902e3eb844a"}, 1719 | {file = "tenacity-8.0.1.tar.gz", hash = "sha256:43242a20e3e73291a28bcbcacfd6e000b02d3857a9a9fff56b297a27afdc932f"}, 1720 | ] 1721 | 1722 | [package.extras] 1723 | doc = ["reno", "sphinx", "tornado (>=4.5)"] 1724 | 1725 | [[package]] 1726 | name = "text-unidecode" 1727 | version = "1.3" 1728 | description = "The most basic Text::Unidecode port" 1729 | optional = false 1730 | python-versions = "*" 1731 | groups = ["dev"] 1732 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1733 | files = [ 1734 | {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, 1735 | {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, 1736 | ] 1737 | 1738 | [[package]] 1739 | name = "toml" 1740 | version = "0.10.2" 1741 | description = "Python Library for Tom's Obvious, Minimal Language" 1742 | optional = false 1743 | python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" 1744 | groups = ["dev"] 1745 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1746 | files = [ 1747 | {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, 1748 | {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, 1749 | ] 1750 | 1751 | [[package]] 1752 | name = "tomli" 1753 | version = "1.2.1" 1754 | description = "A lil' TOML parser" 1755 | optional = false 1756 | python-versions = ">=3.6" 1757 | groups = ["dev"] 1758 | markers = "(sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\") and python_version < \"3.11\"" 1759 | files = [ 1760 | {file = "tomli-1.2.1-py3-none-any.whl", hash = "sha256:8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f"}, 1761 | {file = "tomli-1.2.1.tar.gz", hash = "sha256:a5b75cb6f3968abb47af1b40c1819dc519ea82bcc065776a866e8d74c5ca9442"}, 1762 | ] 1763 | 1764 | [[package]] 1765 | name = "tox" 1766 | version = "3.24.4" 1767 | description = "tox is a generic virtualenv management and test command line tool" 1768 | optional = false 1769 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 1770 | groups = ["dev"] 1771 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1772 | files = [ 1773 | {file = "tox-3.24.4-py2.py3-none-any.whl", hash = "sha256:5e274227a53dc9ef856767c21867377ba395992549f02ce55eb549f9fb9a8d10"}, 1774 | {file = "tox-3.24.4.tar.gz", hash = "sha256:c30b57fa2477f1fb7c36aa1d83292d5c2336cd0018119e1b1c17340e2c2708ca"}, 1775 | ] 1776 | 1777 | [package.dependencies] 1778 | colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""} 1779 | filelock = ">=3.0.0" 1780 | packaging = ">=14" 1781 | pluggy = ">=0.12.0" 1782 | py = ">=1.4.17" 1783 | six = ">=1.14.0" 1784 | toml = ">=0.9.4" 1785 | virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7" 1786 | 1787 | [package.extras] 1788 | docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"] 1789 | testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3) ; python_version < \"3.4\"", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "pytest-xdist (>=1.22.2)"] 1790 | 1791 | [[package]] 1792 | name = "typing-extensions" 1793 | version = "4.13.2" 1794 | description = "Backported and Experimental Type Hints for Python 3.8+" 1795 | optional = false 1796 | python-versions = ">=3.8" 1797 | groups = ["dev"] 1798 | markers = "(sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\") and python_version < \"3.13\"" 1799 | files = [ 1800 | {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, 1801 | {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, 1802 | ] 1803 | 1804 | [[package]] 1805 | name = "urllib3" 1806 | version = "1.26.19" 1807 | description = "HTTP library with thread-safe connection pooling, file post, and more." 1808 | optional = false 1809 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" 1810 | groups = ["dev"] 1811 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1812 | files = [ 1813 | {file = "urllib3-1.26.19-py2.py3-none-any.whl", hash = "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3"}, 1814 | {file = "urllib3-1.26.19.tar.gz", hash = "sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429"}, 1815 | ] 1816 | 1817 | [package.extras] 1818 | brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and platform_python_implementation == \"CPython\"", "brotli (>=1.0.9) ; python_version >= \"3\" and platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; (os_name != \"nt\" or python_version >= \"3\") and platform_python_implementation != \"CPython\"", "brotlipy (>=0.6.0) ; os_name == \"nt\" and python_version < \"3\""] 1819 | secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ; python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] 1820 | socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] 1821 | 1822 | [[package]] 1823 | name = "virtualenv" 1824 | version = "20.8.1" 1825 | description = "Virtual Python Environment builder" 1826 | optional = false 1827 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" 1828 | groups = ["dev"] 1829 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1830 | files = [ 1831 | {file = "virtualenv-20.8.1-py2.py3-none-any.whl", hash = "sha256:10062e34c204b5e4ec5f62e6ef2473f8ba76513a9a617e873f1f8fb4a519d300"}, 1832 | {file = "virtualenv-20.8.1.tar.gz", hash = "sha256:bcc17f0b3a29670dd777d6f0755a4c04f28815395bca279cdcb213b97199a6b8"}, 1833 | ] 1834 | 1835 | [package.dependencies] 1836 | "backports.entry-points-selectable" = ">=1.0.4" 1837 | distlib = ">=0.3.1,<1" 1838 | filelock = ">=3.0.0,<4" 1839 | platformdirs = ">=2,<3" 1840 | six = ">=1.9.0,<2" 1841 | 1842 | [package.extras] 1843 | docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)"] 1844 | testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "packaging (>=20.0) ; python_version > \"3.4\"", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)"] 1845 | 1846 | [[package]] 1847 | name = "watchdog" 1848 | version = "2.1.5" 1849 | description = "Filesystem events monitoring" 1850 | optional = false 1851 | python-versions = ">=3.6" 1852 | groups = ["dev"] 1853 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1854 | files = [ 1855 | {file = "watchdog-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5f57ce4f7e498278fb2a091f39359930144a0f2f90ea8cbf4523c4e25de34028"}, 1856 | {file = "watchdog-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8b74d0d92a69a7ab5f101f9fe74e44ba017be269efa824337366ccbb4effde85"}, 1857 | {file = "watchdog-2.1.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:59767f476cd1f48531bf378f0300565d879688c82da8369ca8c52f633299523c"}, 1858 | {file = "watchdog-2.1.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:814d396859c95598f7576d15bc257c3bd3ba61fa4bc1db7dfc18f09070ded7da"}, 1859 | {file = "watchdog-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28777dbed3bbd95f9c70f461443990a36c07dbf49ae7cd69932cdd1b8fb2850c"}, 1860 | {file = "watchdog-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5cf78f794c9d7bc64a626ef4f71aff88f57a7ae288e0b359a9c6ea711a41395f"}, 1861 | {file = "watchdog-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:43bf728eb7830559f329864ab5da2302c15b2efbac24ad84ccc09949ba753c40"}, 1862 | {file = "watchdog-2.1.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a7053d4d22dc95c5e0c90aeeae1e4ed5269d2f04001798eec43a654a03008d22"}, 1863 | {file = "watchdog-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6f3ad1d973fe8fc8fe64ba38f6a934b74346342fa98ef08ad5da361a05d46044"}, 1864 | {file = "watchdog-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:41d44ef21a77a32b55ce9bf59b75777063751f688de51098859b7c7f6466589a"}, 1865 | {file = "watchdog-2.1.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ed4ca4351cd2bb0d863ee737a2011ca44d8d8be19b43509bd4507f8a449b376b"}, 1866 | {file = "watchdog-2.1.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8874d5ad6b7f43b18935d9b0183e29727a623a216693d6938d07dfd411ba462f"}, 1867 | {file = "watchdog-2.1.5-py3-none-manylinux2014_aarch64.whl", hash = "sha256:50a7f81f99d238f72185f481b493f9de80096e046935b60ea78e1276f3d76960"}, 1868 | {file = "watchdog-2.1.5-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e40e33a4889382824846b4baa05634e1365b47c6fa40071dc2d06b4d7c715fc1"}, 1869 | {file = "watchdog-2.1.5-py3-none-manylinux2014_i686.whl", hash = "sha256:78b1514067ff4089f4dac930b043a142997a5b98553120919005e97fbaba6546"}, 1870 | {file = "watchdog-2.1.5-py3-none-manylinux2014_ppc64.whl", hash = "sha256:58ae842300cbfe5e62fb068c83901abe76e4f413234b7bec5446e4275eb1f9cb"}, 1871 | {file = "watchdog-2.1.5-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:b0cc7d8b7d60da6c313779d85903ce39a63d89d866014b085f720a083d5f3e9a"}, 1872 | {file = "watchdog-2.1.5-py3-none-manylinux2014_s390x.whl", hash = "sha256:e60d3bb7166b7cb830b86938d1eb0e6cfe23dfd634cce05c128f8f9967895193"}, 1873 | {file = "watchdog-2.1.5-py3-none-manylinux2014_x86_64.whl", hash = "sha256:51af09ae937ada0e9a10cc16988ec03c649754a91526170b6839b89fc56d6acb"}, 1874 | {file = "watchdog-2.1.5-py3-none-win32.whl", hash = "sha256:9391003635aa783957b9b11175d9802d3272ed67e69ef2e3394c0b6d9d24fa9a"}, 1875 | {file = "watchdog-2.1.5-py3-none-win_amd64.whl", hash = "sha256:eab14adfc417c2c983fbcb2c73ef3f28ba6990d1fff45d1180bf7e38bda0d98d"}, 1876 | {file = "watchdog-2.1.5-py3-none-win_ia64.whl", hash = "sha256:a2888a788893c4ef7e562861ec5433875b7915f930a5a7ed3d32c048158f1be5"}, 1877 | {file = "watchdog-2.1.5.tar.gz", hash = "sha256:5563b005907613430ef3d4aaac9c78600dd5704e84764cb6deda4b3d72807f09"}, 1878 | ] 1879 | 1880 | [package.extras] 1881 | watchmedo = ["PyYAML (>=3.10)", "argh (>=0.24.1)"] 1882 | 1883 | [[package]] 1884 | name = "wcmatch" 1885 | version = "8.2" 1886 | description = "Wildcard/glob file name matcher." 1887 | optional = false 1888 | python-versions = ">=3.6" 1889 | groups = ["dev"] 1890 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1891 | files = [ 1892 | {file = "wcmatch-8.2-py3-none-any.whl", hash = "sha256:9146b1ab9354e0797ef6ef69bc89cb32cb9f46d1b9eeef69c559aeec8f3bffb6"}, 1893 | {file = "wcmatch-8.2.tar.gz", hash = "sha256:4d54ddb506c90b5a5bba3a96a1cfb0bb07127909e19046a71d689ddfb18c3617"}, 1894 | ] 1895 | 1896 | [package.dependencies] 1897 | bracex = ">=2.1.1" 1898 | 1899 | [[package]] 1900 | name = "websocket-client" 1901 | version = "1.2.1" 1902 | description = "WebSocket client for Python with low level API options" 1903 | optional = false 1904 | python-versions = ">=3.6" 1905 | groups = ["dev"] 1906 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1907 | files = [ 1908 | {file = "websocket-client-1.2.1.tar.gz", hash = "sha256:8dfb715d8a992f5712fff8c843adae94e22b22a99b2c5e6b0ec4a1a981cc4e0d"}, 1909 | {file = "websocket_client-1.2.1-py2.py3-none-any.whl", hash = "sha256:0133d2f784858e59959ce82ddac316634229da55b498aac311f1620567a710ec"}, 1910 | ] 1911 | 1912 | [package.extras] 1913 | optional = ["python-socks", "wsaccel"] 1914 | test = ["websockets"] 1915 | 1916 | [[package]] 1917 | name = "wrapt" 1918 | version = "1.12.1" 1919 | description = "Module for decorators, wrappers and monkey patching." 1920 | optional = false 1921 | python-versions = "*" 1922 | groups = ["dev"] 1923 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1924 | files = [ 1925 | {file = "wrapt-1.12.1.tar.gz", hash = "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"}, 1926 | ] 1927 | 1928 | [[package]] 1929 | name = "yamllint" 1930 | version = "1.26.3" 1931 | description = "A linter for YAML files." 1932 | optional = false 1933 | python-versions = ">=3.5" 1934 | groups = ["dev"] 1935 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1936 | files = [ 1937 | {file = "yamllint-1.26.3.tar.gz", hash = "sha256:3934dcde484374596d6b52d8db412929a169f6d9e52e20f9ade5bf3523d9b96e"}, 1938 | ] 1939 | 1940 | [package.dependencies] 1941 | pathspec = ">=0.5.3" 1942 | pyyaml = "*" 1943 | setuptools = "*" 1944 | 1945 | [[package]] 1946 | name = "zipp" 1947 | version = "3.19.1" 1948 | description = "Backport of pathlib-compatible object wrapper for zip files" 1949 | optional = false 1950 | python-versions = ">=3.8" 1951 | groups = ["dev"] 1952 | markers = "sys_platform == \"linux\" or sys_platform == \"linux2\" or sys_platform != \"linux\" and sys_platform != \"linux2\"" 1953 | files = [ 1954 | {file = "zipp-3.19.1-py3-none-any.whl", hash = "sha256:2828e64edb5386ea6a52e7ba7cdb17bb30a73a858f5eb6eb93d8d36f5ea26091"}, 1955 | {file = "zipp-3.19.1.tar.gz", hash = "sha256:35427f6d5594f4acf82d25541438348c26736fa9b3afa2754bcd63cdb99d8e8f"}, 1956 | ] 1957 | 1958 | [package.extras] 1959 | doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] 1960 | test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] 1961 | 1962 | [metadata] 1963 | lock-version = "2.1" 1964 | python-versions = "^3.9" 1965 | content-hash = "e93009f2a3d7986390533356316c0ffdae89e06c5265931c52568ca0f8a29044" 1966 | --------------------------------------------------------------------------------