From f0c4dfc8118344a1fafe955bd39ce2d8bdc7b692 Mon Sep 17 00:00:00 2001 From: Wyatt Stanke Date: Sun, 18 Feb 2024 10:49:14 -0500 Subject: [PATCH] YAMLLint now passes --- .github/action.yml | 55 ++--- .github/workflows/RELEASE.yml | 9 +- .github/workflows/codacy.yml | 19 +- .github/workflows/codeql.yml | 65 +++--- .github/workflows/docs.yml | 3 +- .github/workflows/label.yml | 8 +- .github/workflows/lint.yml | 4 +- .github/workflows/pr_labeler.yml | 5 +- .github/workflows/pr_request_checks.yml | 3 +- .github/workflows/pull-request-links.yml | 3 +- .github/workflows/pylint.yml | 25 ++- .github/workflows/python-app.yml | 44 ++-- .github/workflows/python-package.yml | 46 ++-- .github/workflows/python-publish.yml | 6 +- .github/workflows/stale.yml | 18 +- .github/workflows/stale_isseue.yml | 61 +++-- .github/workflows/test.yml | 51 +++-- .github/workflows/test_pr.yml | 99 ++++---- .github/workflows/testing.yml | 1 + .github/workflows/unit-test.yml | 39 ++-- .github/workflows/welcome.yml | 9 +- .pre-commit-config.yaml | 15 +- .readthedocs.yml | 5 +- .yamllint.yaml | 9 + mkdocs.yml | 275 ++++++++++++----------- 25 files changed, 453 insertions(+), 424 deletions(-) create mode 100644 .yamllint.yaml diff --git a/.github/action.yml b/.github/action.yml index f2f9016c..af2725e7 100644 --- a/.github/action.yml +++ b/.github/action.yml @@ -1,37 +1,38 @@ +--- name: "Init Environment" description: "Initialize environment for tests" runs: using: "composite" steps: - - name: Checkout actions - uses: actions/checkout@v3 + - name: Checkout actions + uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} - - name: Install and configure Poetry - uses: snok/install-poetry@v1 - with: - virtualenvs-create: true - virtualenvs-in-project: true - installer-parallel: true + - name: Install and configure Poetry + uses: snok/install-poetry@v1 + with: + virtualenvs-create: true + virtualenvs-in-project: true + installer-parallel: true - - name: Load cached venv - id: cached-poetry-dependencies - uses: actions/cache@v3 - with: - path: .venv - key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} + - name: Load cached venv + id: cached-poetry-dependencies + uses: actions/cache@v3 + with: + path: .venv + key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - - name: Install dependencies - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: poetry install --no-interaction --no-root --with test --with dev --all-extras - shell: bash + - name: Install dependencies + if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' + run: poetry install --no-interaction --no-root --with test --with dev --all-extras + shell: bash - - name: Activate venv - run: | - source .venv/bin/activate - echo PATH=$PATH >> $GITHUB_ENV - shell: bash \ No newline at end of file + - name: Activate venv + run: | + source .venv/bin/activate + echo PATH=$PATH >> $GITHUB_ENV + shell: bash diff --git a/.github/workflows/RELEASE.yml b/.github/workflows/RELEASE.yml index b219bb77..1df2596f 100644 --- a/.github/workflows/RELEASE.yml +++ b/.github/workflows/RELEASE.yml @@ -1,3 +1,4 @@ +--- name: release on: @@ -7,7 +8,7 @@ on: branches: - master paths: - - 'pyproject.toml' + - "pyproject.toml" env: POETRY_VERSION: "1.4.2" @@ -15,8 +16,8 @@ env: jobs: if_release: if: | - ${{ github.event.pull_request.merged == true }} - && ${{ contains(github.event.pull_request.labels.*.name, 'release') }} + ${{ github.event.pull_request.merged == true }} + && ${{ contains(github.event.pull_request.labels.*.name, 'release') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -46,4 +47,4 @@ jobs: env: POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }} run: | - poetry publish \ No newline at end of file + poetry publish diff --git a/.github/workflows/codacy.yml b/.github/workflows/codacy.yml index 5f58b11d..9137ae9e 100644 --- a/.github/workflows/codacy.yml +++ b/.github/workflows/codacy.yml @@ -1,3 +1,4 @@ +--- # This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support @@ -15,12 +16,12 @@ name: Codacy Security Scan on: push: - branches: [ "master" ] + branches: ["master"] pull_request: # The branches below must be a subset of the branches above - branches: [ "master" ] + branches: ["master"] schedule: - - cron: '18 23 * * 4' + - cron: "18 23 * * 4" permissions: contents: read @@ -28,9 +29,12 @@ permissions: jobs: codacy-security-scan: permissions: - contents: read # for actions/checkout to fetch code - security-events: write # for github/codeql-action/upload-sarif to upload SARIF results - actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status + # for actions/checkout to fetch code + contents: read + # for github/codeql-action/upload-sarif to upload SARIF results + security-events: write + # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status + actions: read name: Codacy Security Scan runs-on: ubuntu-latest steps: @@ -42,7 +46,8 @@ jobs: - name: Run Codacy Analysis CLI uses: codacy/codacy-analysis-cli-action@33d455949345bddfdb845fba76b57b70cc83754b with: - # Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository + # Check https://github.com/codacy/codacy-analysis-cli#project-token + # to get your project token from your Codacy repository # You can also omit the token and run the tools that support default configurations project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} verbose: true diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 56930314..868c2791 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,3 +1,4 @@ +--- # For most projects, this workflow file will not need changing; you simply need # to commit it to your repository. # @@ -13,12 +14,12 @@ name: "CodeQL" on: push: - branches: [ "master" ] + branches: ["master"] pull_request: # The branches below must be a subset of the branches above - branches: [ "master" ] + branches: ["master"] schedule: - - cron: '33 12 * * 5' + - cron: "33 12 * * 5" jobs: analyze: @@ -38,45 +39,45 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'python' ] + language: ["python"] # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ] # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: - - name: Checkout repository - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality + # For more details on CodeQL's query packs, refer to: + # https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v3 - # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - # If the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 - with: - category: "/language:${{matrix.language}}" + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 0b830b9f..05078db2 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,3 +1,4 @@ +--- name: Docs WorkAgent on: @@ -17,4 +18,4 @@ jobs: - run: pip install mkdocs-material - run: pip install mkdocs-glightbox - run: pip install "mkdocstrings[python]" - - run: mkdocs gh-deploy --force \ No newline at end of file + - run: mkdocs gh-deploy --force diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index d23c4d40..8f38f9f8 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -1,3 +1,4 @@ +--- # This workflow will triage pull requests and apply a label based on the # paths that are modified in the pull request. # @@ -10,13 +11,12 @@ on: [pull_request_target] jobs: label: - runs-on: ubuntu-latest permissions: contents: read pull-requests: write steps: - - uses: actions/labeler@v5 - with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" + - uses: actions/labeler@v5 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b38491c2..462b2ec7 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,7 +1,7 @@ - +--- name: Lint -on: [push, pull_request] # yamllint disable-line rule:truthy +on: [push, pull_request] jobs: yaml-lint: diff --git a/.github/workflows/pr_labeler.yml b/.github/workflows/pr_labeler.yml index 7745d717..45166596 100644 --- a/.github/workflows/pr_labeler.yml +++ b/.github/workflows/pr_labeler.yml @@ -1,3 +1,4 @@ +--- name: "PR Labeler" on: @@ -11,5 +12,5 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/labeler@v5 - if: ${{ github.event.pull_request.draft == false }} \ No newline at end of file + - uses: actions/labeler@v5 + if: ${{ github.event.pull_request.draft == false }} diff --git a/.github/workflows/pr_request_checks.yml b/.github/workflows/pr_request_checks.yml index cfc01afb..54fabf3b 100644 --- a/.github/workflows/pr_request_checks.yml +++ b/.github/workflows/pr_request_checks.yml @@ -1,3 +1,4 @@ +--- name: Pull Request Checks on: @@ -22,7 +23,7 @@ jobs: run: | pip install -r requirements.txt pip install swarms - pip install pytest + pip install pytest - name: Run tests and checks run: | diff --git a/.github/workflows/pull-request-links.yml b/.github/workflows/pull-request-links.yml index 4cb674d8..2c9fdcb1 100644 --- a/.github/workflows/pull-request-links.yml +++ b/.github/workflows/pull-request-links.yml @@ -1,3 +1,4 @@ +--- name: readthedocs/actions on: pull_request_target: @@ -15,4 +16,4 @@ jobs: steps: - uses: readthedocs/actions/preview@v1 with: - project-slug: swarms \ No newline at end of file + project-slug: swarms diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index d3f42fb1..623491a3 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -1,3 +1,4 @@ +--- name: Pylint on: [push] @@ -9,15 +10,15 @@ jobs: matrix: python-version: ["3.8", "3.9", "3.10"] steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install pylint - - name: Analysing the code with pylint - run: | - pylint $(git ls-files '*.py') + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pylint + - name: Analysing the code with pylint + run: | + pylint $(git ls-files '*.py') diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index adc0c5ef..31ba3038 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -1,3 +1,4 @@ +--- # This workflow will install Python dependencies, run tests and lint with a single version of Python # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python @@ -5,35 +6,34 @@ name: Python application on: push: - branches: [ "master" ] + branches: ["master"] pull_request: - branches: [ "master" ] + branches: ["master"] permissions: contents: read jobs: build: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Set up Python 3.10 - uses: actions/setup-python@v5 - with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install flake8 pytest swarms - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest - run: | - pytest + - uses: actions/checkout@v4 + - name: Set up Python 3.10 + uses: actions/setup-python@v5 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 pytest swarms + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pytest diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 31cdfb93..2b72bd83 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,3 +1,4 @@ +--- # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python @@ -5,13 +6,12 @@ name: Python package on: push: - branches: [ "master" ] + branches: ["master"] pull_request: - branches: [ "master" ] + branches: ["master"] jobs: build: - runs-on: ubuntu-latest strategy: fail-fast: false @@ -19,23 +19,23 @@ jobs: python-version: ["3.7", "3.9", "3.10", "3.11"] steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install --upgrade swarms - python -m pip install flake8 pytest swarms - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest - run: | - pytest \ No newline at end of file + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade swarms + python -m pip install flake8 pytest swarms + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pytest diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 889774f0..e313461a 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -1,6 +1,7 @@ +--- name: Upload Python Package -on: # yamllint disable-line rule:truthy +on: release: types: [published] @@ -9,7 +10,6 @@ permissions: jobs: deploy: - runs-on: ubuntu-latest steps: @@ -17,7 +17,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.x' + python-version: "3.x" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 3aa6410b..e5dc0913 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -1,3 +1,4 @@ +--- # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. # # You can adjust the behavior by modifying this file. @@ -7,21 +8,20 @@ name: Mark stale issues and pull requests on: schedule: - - cron: '26 12 * * *' + - cron: "26 12 * * *" jobs: stale: - runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - - uses: actions/stale@v9 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-issue-message: 'Stale issue message' - stale-pr-message: 'Stale pull request message' - stale-issue-label: 'no-issue-activity' - stale-pr-label: 'no-pr-activity' \ No newline at end of file + - uses: actions/stale@v9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-issue-message: "Stale issue message" + stale-pr-message: "Stale pull request message" + stale-issue-label: "no-issue-activity" + stale-pr-label: "no-pr-activity" diff --git a/.github/workflows/stale_isseue.yml b/.github/workflows/stale_isseue.yml index c5fe2648..139a7bfd 100644 --- a/.github/workflows/stale_isseue.yml +++ b/.github/workflows/stale_isseue.yml @@ -1,3 +1,4 @@ +--- # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. # # You can adjust the behavior by modifying this file. @@ -7,43 +8,41 @@ name: Mark stale issues and pull requests on: schedule: - # Scheduled to run at 1.30 UTC everyday - - cron: '30 1 * * *' + # Scheduled to run at 1.30 UTC everyday + - cron: "30 1 * * *" jobs: stale: - runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - - uses: actions/stale@v9 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - days-before-issue-stale: 14 - days-before-issue-close: 14 - stale-issue-label: "status:stale" - close-issue-reason: not_planned - any-of-labels: "status:awaiting user response,status:more data needed" - stale-issue-message: > - Marking this issue as stale since it has been open for 14 days with no activity. - This issue will be closed if no further activity occurs. - close-issue-message: > - This issue was closed because it has been inactive for 28 days. - Please post a new issue if you need further assistance. Thanks! - days-before-pr-stale: 14 - days-before-pr-close: 14 - stale-pr-label: "status:stale" - stale-pr-message: > - Marking this pull request as stale since it has been open for 14 days with no activity. - This PR will be closed if no further activity occurs. - close-pr-message: > - This pull request was closed because it has been inactive for 28 days. - Please open a new pull request if you need further assistance. Thanks! - # Label that can be assigned to issues to exclude them from being marked as stale - exempt-issue-labels: 'override-stale' - # Label that can be assigned to PRs to exclude them from being marked as stale - exempt-pr-labels: "override-stale" - \ No newline at end of file + - uses: actions/stale@v9 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + days-before-issue-stale: 14 + days-before-issue-close: 14 + stale-issue-label: "status:stale" + close-issue-reason: not_planned + any-of-labels: "status:awaiting user response,status:more data needed" + stale-issue-message: > + Marking this issue as stale since it has been open for 14 days with no activity. + This issue will be closed if no further activity occurs. + close-issue-message: > + This issue was closed because it has been inactive for 28 days. + Please post a new issue if you need further assistance. Thanks! + days-before-pr-stale: 14 + days-before-pr-close: 14 + stale-pr-label: "status:stale" + stale-pr-message: > + Marking this pull request as stale since it has been open for 14 days with no activity. + This PR will be closed if no further activity occurs. + close-pr-message: > + This pull request was closed because it has been inactive for 28 days. + Please open a new pull request if you need further assistance. Thanks! + # Label that can be assigned to issues to exclude them from being marked as stale + exempt-issue-labels: "override-stale" + # Label that can be assigned to PRs to exclude them from being marked as stale + exempt-pr-labels: "override-stale" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index baaadfc8..3460eb80 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,3 +1,4 @@ +--- name: test on: @@ -30,14 +31,13 @@ jobs: python-version: ${{ matrix.python-version }} poetry-version: "1.4.2" cache-key: ${{ matrix.test_type }} - install-command: - if [ "${{ matrix.test_type }}" == "core" ]; then - echo "Running core tests, installing dependencies with poetry..." - poetry install - else - echo "Running extended tests, installing dependencies with poetry..." - poetry install -E extended_testing - fi + install-command: if [ "${{ matrix.test_type }}" == "core" ]; then + echo "Running core tests, installing dependencies with poetry..." + poetry install + else + echo "Running extended tests, installing dependencies with poetry..." + poetry install -E extended_testing + fi - name: Run ${{matrix.test_type}} tests run: | if [ "${{ matrix.test_type }}" == "core" ]; then @@ -46,9 +46,8 @@ jobs: make extended_tests fi shell: bash - name: Python ${{ matrix.python-version }} ${{ matrix.test_type }} - steps: - - uses: actions/checkout@v4 + - name: Python ${{ matrix.python-version }} ${{ matrix.test_type }} + uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: "./.github/actions/poetry_setup" with: @@ -56,13 +55,13 @@ jobs: poetry-version: "1.4.2" cache-key: ${{ matrix.test_type }} install-command: | - if [ "${{ matrix.test_type }}" == "core" ]; then - echo "Running core tests, installing dependencies with poetry..." - poetry install - else - echo "Running extended tests, installing dependencies with poetry..." - poetry install -E extended_testing - fi + if [ "${{ matrix.test_type }}" == "core" ]; then + echo "Running core tests, installing dependencies with poetry..." + poetry install + else + echo "Running extended tests, installing dependencies with poetry..." + poetry install -E extended_testing + fi - name: Run ${{matrix.test_type}} tests run: | if [ "${{ matrix.test_type }}" == "core" ]; then @@ -93,13 +92,13 @@ jobs: poetry-version: "1.4.2" cache-key: ${{ matrix.test_type }} install-command: | - if [ "${{ matrix.test_type }}" == "core" ]; then - echo "Running core tests, installing dependencies with poetry..." - poetry install - else - echo "Running extended tests, installing dependencies with poetry..." - poetry install -E extended_testing - fi + if [ "${{ matrix.test_type }}" == "core" ]; then + echo "Running core tests, installing dependencies with poetry..." + poetry install + else + echo "Running extended tests, installing dependencies with poetry..." + poetry install -E extended_testing + fi - name: Run ${{matrix.test_type}} tests run: | if [ "${{ matrix.test_type }}" == "core" ]; then @@ -107,4 +106,4 @@ jobs: else make extended_tests fi - shell: bash \ No newline at end of file + shell: bash diff --git a/.github/workflows/test_pr.yml b/.github/workflows/test_pr.yml index 8da3bd0a..7d996d57 100644 --- a/.github/workflows/test_pr.yml +++ b/.github/workflows/test_pr.yml @@ -1,3 +1,4 @@ +--- # Notebook-related checks name: Presubmit checks @@ -6,8 +7,8 @@ on: # Relevant PRs pull_request: paths: - - "swarms/**" - - "tests/**" + - "swarms/**" + - "tests/**" # Allow manual runs workflow_dispatch: @@ -16,66 +17,66 @@ jobs: name: Test Py3.11 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - name: Run tests - run: | - python --version - pip install .[dev] - python -m pytest + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Run tests + run: | + python --version + pip install .[dev] + python -m pytest test3_10: name: Test Py3.10 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - name: Run tests - run: | - python --version - pip install -q .[dev] - python -m pytest + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.10" + - name: Run tests + run: | + python --version + pip install -q .[dev] + python -m pytest test3_9: name: Test Py3.9 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.9' - - name: Run tests - run: | - python --version - pip install .[dev] - python -m pytest + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.9" + - name: Run tests + run: | + python --version + pip install .[dev] + python -m pytest pytype3_10: name: pytype 3.10 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - name: Run pytype - run: | - python --version - pip install .[dev] - pip install -q gspread ipython - pytype + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.10" + - name: Run pytype + run: | + python --version + pip install .[dev] + pip install -q gspread ipython + pytype format: name: Check format with black runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - name: Check format - run: | - python --version - pip install -q . - pip install -q black - black . --check + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Check format + run: | + python --version + pip install -q . + pip install -q black + black . --check diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index c858b5fe..b9452c17 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -1,3 +1,4 @@ +--- name: Unit Tests on: diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index a858dae4..aab762ce 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -1,36 +1,35 @@ +--- name: build on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] + branches: [main] jobs: - build: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: '3.9' + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.9" - - name: Install dependencies - run: | - pip install -r requirements.txt - pip install pytest - pip install swarms + - name: Install dependencies + run: | + pip install -r requirements.txt + pip install pytest + pip install swarms - - name: Run Python unit tests - run: pytest + - name: Run Python unit tests + run: pytest - - name: Verify that the Docker image for the action builds - run: docker build . --file Dockerfile + - name: Verify that the Docker image for the action builds + run: docker build . --file Dockerfile - - name: Verify integration test results - run: pytest + - name: Verify integration test results + run: pytest diff --git a/.github/workflows/welcome.yml b/.github/workflows/welcome.yml index 3dcd5bb1..846f486d 100644 --- a/.github/workflows/welcome.yml +++ b/.github/workflows/welcome.yml @@ -1,3 +1,4 @@ +--- name: Welcome WorkAgent on: @@ -15,5 +16,9 @@ jobs: - uses: actions/first-interaction@v1.3.0 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - issue-message: "Hello there, thank you for opening an Issue ! 🙏đŸģ The team was notified and they will get back to you asap." - pr-message: "Hello there, thank you for opening an PR ! 🙏đŸģ The team was notified and they will get back to you asap." \ No newline at end of file + issue-message: >- + Hello there, thank you for opening an Issue ! 🙏đŸģ + The team was notified and they will get back to you asap. + pr-message: >- + Hello there, thank you for opening an PR ! 🙏đŸģ + The team was notified and they will get back to you asap. diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0c936705..429ad28e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,18 +1,19 @@ +--- repos: - repo: https://github.com/ambv/black rev: 22.3.0 hooks: - - id: black + - id: black - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: 'v0.0.255' + rev: "v0.0.255" hooks: - id: ruff args: [----unsafe-fixes] - repo: https://github.com/nbQA-dev/nbQA rev: 1.6.3 hooks: - - id: nbqa-black - additional_dependencies: [ipython==8.12, black] - - id: nbqa-ruff - args: ["--ignore=I001"] - additional_dependencies: [ipython==8.12, ruff] \ No newline at end of file + - id: nbqa-black + additional_dependencies: [ipython==8.12, black] + - id: nbqa-ruff + args: ["--ignore=I001"] + additional_dependencies: [ipython==8.12, ruff] diff --git a/.readthedocs.yml b/.readthedocs.yml index e3e74fad..d51bc576 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,3 +1,4 @@ +--- version: 2 build: @@ -9,5 +10,5 @@ mkdocs: configuration: mkdocs.yml python: - install: - - requirements: requirements.txt + install: + - requirements: requirements.txt diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 00000000..237e7d23 --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,9 @@ +--- +extends: default + +rules: + line-length: + max: 127 + truthy: + # GitHub Actions + check-keys: false diff --git a/mkdocs.yml b/mkdocs.yml index 2f654a98..62fbca90 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,3 +1,4 @@ +--- site_name: Swarms Docs plugins: - glightbox @@ -16,15 +17,15 @@ extra: - icon: fontawesome/brands/python link: https://pypi.org/project/Swarms/ theme: - name: material - custom_dir: docs/overrides - logo: assets/img/SwarmsLogoIcon.png - palette: - # Palette toggle for light mode + name: material + custom_dir: docs/overrides + logo: assets/img/SwarmsLogoIcon.png + palette: + # Palette toggle for light mode - scheme: default primary: black toggle: - icon: material/brightness-7 + icon: material/brightness-7 name: Switch to dark mode # Palette toggle for dark mode - scheme: slate @@ -32,14 +33,14 @@ theme: toggle: icon: material/brightness-4 name: Switch to light mode - features: - - content.code.copy - - content.code.annotate - - navigation.tabs - - navigation.sections - - navigation.expand - - navigation.top - - announce.dismiss + features: + - content.code.copy + - content.code.annotate + - navigation.tabs + - navigation.sections + - navigation.expand + - navigation.top + - announce.dismiss markdown_extensions: - pymdownx.highlight: anchor_linenums: true @@ -55,126 +56,126 @@ markdown_extensions: - def_list - footnotes nav: -- Home: - - Overview: "index.md" - - Contributing: "contributing.md" -- Swarms: - - Overview: "swarms/index.md" - - swarms.agents: - - Agents: - - WorkerAgent: "swarms/agents/workeragent.md" - - OmniAgent: "swarms/agents/omni_agent.md" - - AbstractAgent: "swarms/agents/abstractagent.md" - - ToolAgent: "swarms/agents/toolagent.md" - - swarms.models: - - Language: - - BaseLLM: "swarms/models/base_llm.md" - - Overview: "swarms/models/index.md" - - HuggingFaceLLM: "swarms/models/huggingface.md" - - Anthropic: "swarms/models/anthropic.md" - - OpenAI: "swarms/models/openai.md" - - Zephyr: "swarms/models/zephyr.md" - - BioGPT: "swarms/models/biogpt.md" - - vLLM: "swarms/models/vllm.md" - - MPT7B: "swarms/models/mpt.md" - - Mistral: "swarms/models/mistral.md" - - Mixtral: "swarms/models/mixtral.md" - - MultiModal: - - BaseMultiModalModel: "swarms/models/base_multimodal_model.md" - - Fuyu: "swarms/models/fuyu.md" - - Vilt: "swarms/models/vilt.md" - - Idefics: "swarms/models/idefics.md" - - BingChat: "swarms/models/bingchat.md" - - Kosmos: "swarms/models/kosmos.md" - - Nougat: "swarms/models/nougat.md" - - Dalle3: "swarms/models/dalle3.md" - - GPT4V: "swarms/models/gpt4v.md" - - LayoutLMDocumentQA: "swarms/models/layoutlm_document_qa.md" - - DistilWhisperModel: "swarms/models/distilled_whisperx.md" - - ElevenLabsText2SpeechTool: "swarms/models/elevenlabs.md" - - OpenAITTS: "swarms/models/openai_tts.md" - - Gemini: "swarms/models/gemini.md" - - ZeroscopeTTV: "swarms/models/zeroscope.md" - - swarms.structs: - - Foundational Structures: - - agent: "swarms/structs/agent.md" - - basestructure: "swarms/structs/basestructure.md" - - artifactupload: "swarms/structs/artifactupload.md" - - taskinput: "swarms/structs/taskinput.md" - - stepinput: "swarms/structs/stepinput.md" - - artifact: "swarms/structs/artifact.md" - - task: "swarms/structs/task.md" - - Task Queue Base: "swarms/structs/taskqueuebase.md" - - Workflows: - - recursiveworkflow: "swarms/structs/recursiveworkflow.md" - - concurrentworkflow: "swarms/structs/concurrentworkflow.md" - - nonlinearworkflow: "swarms/structs/nonlinearworkflow.md" - - sequential_workflow: "swarms/structs/sequential_workflow.md" - - workflow: "swarms/structs/workflow.md" - - baseworkflow: "swarms/structs/baseworkflow.md" - - Multi Agent Architectures: - - conversation: "swarms/structs/conversation.md" - - groupchat: "swarms/structs/groupchat.md" - - swarmnetwork: "swarms/structs/swarmnetwork.md" - - groupchatmanager: "swarms/structs/groupchatmanager.md" - - MajorityVoting: "swarms/structs/majorityvoting.md" - - swarms.tokenizers: - - Language: - - Tokenizer: "swarms/tokenizers/tokenizer.md" - - CohereTokenizer: "swarms/tokenizers/coheretokenizer.md" - - BaseTokenizer: "swarms/tokenizers/basetokenizer.md" - - HuggingfaceTokenizer: "swarms/tokenizers/huggingfacetokenizer.md" - - SentencepieceTokenizer: "swarms/tokenizers/sentencepiecetokenizer.md" - - AnthropicTokenizer: "swarms/tokenizers/anthropictokenizer.md" - - OpenaiTokenizer: "swarms/tokenizers/openaitokenizer.md" - - swarms.memory: - - Vector Databases: - - Weaviate: "swarms/memory/weaviate.md" - - PineconeDB: "swarms/memory/pinecone.md" - - PGVectorStore: "swarms/memory/pg.md" - - ShortTermMemory: "swarms/memory/short_term_memory.md" - - swarms.utils: - - Misc: - - pdf_to_text: "swarms/utils/pdf_to_text.md" - - load_model_torch: "swarms/utils/load_model_torch.md" - - metrics_decorator: "swarms/utils/metrics_decorator.md" - - prep_torch_inference: "swarms/utils/prep_torch_inference.md" - - find_image_path: "swarms/utils/find_image_path.md" - - print_class_parameters: "swarms/utils/print_class_parameters.md" - - extract_code_from_markdown: "swarms/utils/extract_code_from_markdown.md" - - check_device: "swarms/utils/check_device.md" - - display_markdown_message: "swarms/utils/display_markdown_message.md" - - phoenix_tracer: "swarms/utils/phoenix_tracer.md" - - limit_tokens_from_string: "swarms/utils/limit_tokens_from_string.md" - - math_eval: "swarms/utils/math_eval.md" -- Guides: - - Overview: "examples/index.md" - - Agents: - - Agent: "examples/flow.md" - - OmniAgent: "examples/omni_agent.md" - - Swarms: - - SequentialWorkflow: "examples/reliable_autonomous_agents.md" - - 2O+ Autonomous Agent Blogs: "examples/ideas.md" -- Applications: - - CustomerSupport: - - Overview: "applications/customer_support.md" - - Marketing: - - Overview: "applications/marketing_agencies.md" -- Corporate: - - FAQ: "corporate/faq.md" - - Purpose: "corporate/purpose.md" - - Roadmap: "corporate/roadmap.md" - - Weaknesses: "corporate/failures.md" - - Design: "corporate/design.md" - - Flywheel: "corporate/flywheel.md" - - Bounties: "corporate/bounties.md" - - Metric: "corporate/metric.md" - - Distribution: "corporate/distribution" - - Research: "corporate/research.md" - - Demos: "corporate/demos.md" - - Architecture: "corporate/architecture.md" - - Checklist: "corporate/checklist.md" - - Hiring: "corporate/hiring.md" - - SwarmCloud: "corporate/swarm_cloud.md" - - SwarmMemo: "corporate/swarm_memo.md" - - Data Room: "corporate/data_room.md" + - Home: + - Overview: "index.md" + - Contributing: "contributing.md" + - Swarms: + - Overview: "swarms/index.md" + - swarms.agents: + - Agents: + - WorkerAgent: "swarms/agents/workeragent.md" + - OmniAgent: "swarms/agents/omni_agent.md" + - AbstractAgent: "swarms/agents/abstractagent.md" + - ToolAgent: "swarms/agents/toolagent.md" + - swarms.models: + - Language: + - BaseLLM: "swarms/models/base_llm.md" + - Overview: "swarms/models/index.md" + - HuggingFaceLLM: "swarms/models/huggingface.md" + - Anthropic: "swarms/models/anthropic.md" + - OpenAI: "swarms/models/openai.md" + - Zephyr: "swarms/models/zephyr.md" + - BioGPT: "swarms/models/biogpt.md" + - vLLM: "swarms/models/vllm.md" + - MPT7B: "swarms/models/mpt.md" + - Mistral: "swarms/models/mistral.md" + - Mixtral: "swarms/models/mixtral.md" + - MultiModal: + - BaseMultiModalModel: "swarms/models/base_multimodal_model.md" + - Fuyu: "swarms/models/fuyu.md" + - Vilt: "swarms/models/vilt.md" + - Idefics: "swarms/models/idefics.md" + - BingChat: "swarms/models/bingchat.md" + - Kosmos: "swarms/models/kosmos.md" + - Nougat: "swarms/models/nougat.md" + - Dalle3: "swarms/models/dalle3.md" + - GPT4V: "swarms/models/gpt4v.md" + - LayoutLMDocumentQA: "swarms/models/layoutlm_document_qa.md" + - DistilWhisperModel: "swarms/models/distilled_whisperx.md" + - ElevenLabsText2SpeechTool: "swarms/models/elevenlabs.md" + - OpenAITTS: "swarms/models/openai_tts.md" + - Gemini: "swarms/models/gemini.md" + - ZeroscopeTTV: "swarms/models/zeroscope.md" + - swarms.structs: + - Foundational Structures: + - agent: "swarms/structs/agent.md" + - basestructure: "swarms/structs/basestructure.md" + - artifactupload: "swarms/structs/artifactupload.md" + - taskinput: "swarms/structs/taskinput.md" + - stepinput: "swarms/structs/stepinput.md" + - artifact: "swarms/structs/artifact.md" + - task: "swarms/structs/task.md" + - Task Queue Base: "swarms/structs/taskqueuebase.md" + - Workflows: + - recursiveworkflow: "swarms/structs/recursiveworkflow.md" + - concurrentworkflow: "swarms/structs/concurrentworkflow.md" + - nonlinearworkflow: "swarms/structs/nonlinearworkflow.md" + - sequential_workflow: "swarms/structs/sequential_workflow.md" + - workflow: "swarms/structs/workflow.md" + - baseworkflow: "swarms/structs/baseworkflow.md" + - Multi Agent Architectures: + - conversation: "swarms/structs/conversation.md" + - groupchat: "swarms/structs/groupchat.md" + - swarmnetwork: "swarms/structs/swarmnetwork.md" + - groupchatmanager: "swarms/structs/groupchatmanager.md" + - MajorityVoting: "swarms/structs/majorityvoting.md" + - swarms.tokenizers: + - Language: + - Tokenizer: "swarms/tokenizers/tokenizer.md" + - CohereTokenizer: "swarms/tokenizers/coheretokenizer.md" + - BaseTokenizer: "swarms/tokenizers/basetokenizer.md" + - HuggingfaceTokenizer: "swarms/tokenizers/huggingfacetokenizer.md" + - SentencepieceTokenizer: "swarms/tokenizers/sentencepiecetokenizer.md" + - AnthropicTokenizer: "swarms/tokenizers/anthropictokenizer.md" + - OpenaiTokenizer: "swarms/tokenizers/openaitokenizer.md" + - swarms.memory: + - Vector Databases: + - Weaviate: "swarms/memory/weaviate.md" + - PineconeDB: "swarms/memory/pinecone.md" + - PGVectorStore: "swarms/memory/pg.md" + - ShortTermMemory: "swarms/memory/short_term_memory.md" + - swarms.utils: + - Misc: + - pdf_to_text: "swarms/utils/pdf_to_text.md" + - load_model_torch: "swarms/utils/load_model_torch.md" + - metrics_decorator: "swarms/utils/metrics_decorator.md" + - prep_torch_inference: "swarms/utils/prep_torch_inference.md" + - find_image_path: "swarms/utils/find_image_path.md" + - print_class_parameters: "swarms/utils/print_class_parameters.md" + - extract_code_from_markdown: "swarms/utils/extract_code_from_markdown.md" + - check_device: "swarms/utils/check_device.md" + - display_markdown_message: "swarms/utils/display_markdown_message.md" + - phoenix_tracer: "swarms/utils/phoenix_tracer.md" + - limit_tokens_from_string: "swarms/utils/limit_tokens_from_string.md" + - math_eval: "swarms/utils/math_eval.md" + - Guides: + - Overview: "examples/index.md" + - Agents: + - Agent: "examples/flow.md" + - OmniAgent: "examples/omni_agent.md" + - Swarms: + - SequentialWorkflow: "examples/reliable_autonomous_agents.md" + - 2O+ Autonomous Agent Blogs: "examples/ideas.md" + - Applications: + - CustomerSupport: + - Overview: "applications/customer_support.md" + - Marketing: + - Overview: "applications/marketing_agencies.md" + - Corporate: + - FAQ: "corporate/faq.md" + - Purpose: "corporate/purpose.md" + - Roadmap: "corporate/roadmap.md" + - Weaknesses: "corporate/failures.md" + - Design: "corporate/design.md" + - Flywheel: "corporate/flywheel.md" + - Bounties: "corporate/bounties.md" + - Metric: "corporate/metric.md" + - Distribution: "corporate/distribution" + - Research: "corporate/research.md" + - Demos: "corporate/demos.md" + - Architecture: "corporate/architecture.md" + - Checklist: "corporate/checklist.md" + - Hiring: "corporate/hiring.md" + - SwarmCloud: "corporate/swarm_cloud.md" + - SwarmMemo: "corporate/swarm_memo.md" + - Data Room: "corporate/data_room.md"