From 8cf89d60afcc0d36486335ab7f7cfdb0f7ebd079 Mon Sep 17 00:00:00 2001 From: Jacob Coffee Date: Tue, 19 Sep 2023 22:06:40 -0500 Subject: [PATCH 1/6] Initial commit --- Makefile | 14 ++++++-------- README.md | 11 ++--------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index b06dc56..263cb4d 100644 --- a/Makefile +++ b/Makefile @@ -5,11 +5,11 @@ SHELL := /bin/bash .DEFAULT_GOAL:=help .ONESHELL: -USING_PDM = $(shell grep "tool.pdm" pyproject.toml && echo "yes") -ENV_PREFIX := $(shell if [ -d .venv ]; then echo ".venv/bin/"; fi) -VENV_EXISTS := $(shell if [ -d .venv ]; then echo "yes"; fi) -PDM_OPTS ?= -PDM ?= pdm $(PDM_OPTS) +USING_PDM = $(shell grep "tool.pdm" pyproject.toml && echo "yes") +ENV_PREFIX = $(shell python3 -c "if __import__('pathlib').Path('.venv/bin/pip').exists(): print('.venv/bin/')") +VENV_EXISTS = $(shell python3 -c "if __import__('pathlib').Path('.venv/bin/activate').exists(): print('yes')") +PDM_OPTS ?= +PDM ?= pdm $(PDM_OPTS) .EXPORT_ALL_VARIABLES: @@ -31,9 +31,7 @@ upgrade: ## Upgrade all dependencies to the latest stable versio # ============================================================================= .PHONY: install-pdm install-pdm: ## Install latest version of PDM - @curl -sSLO https://pdm.fming.dev/install-pdm.py && \ - curl -sSL https://pdm.fming.dev/install-pdm.py.sha256 | shasum -a 256 -c - && \ - python3 install-pdm.py + @curl -sSL https://pdm.fming.dev/install-pdm.py | python3 - install: ## Install the project and @if ! $(PDM) --version > /dev/null; then echo '=> Installing PDM'; $(MAKE) install-pdm; fi diff --git a/README.md b/README.md index 58993af..89dd14e 100644 --- a/README.md +++ b/README.md @@ -45,15 +45,8 @@ Usage: ## Sonar - Import the repository into sonarcloud and update the sonar properties file to use the correct project key. +- Add the `SONAR_TOKEN` secret in GitHub as an action secret. ## Release -- Increment the version in pyproject.toml according to the versioning scheme -- Draft a new release on GitHub - - Use vMAJOR.MINOR.PATCH (e.g. v1.2.3) as both the tag and release title - - The version should follow [semantic versioning](https://semver.org/) and [PEP 440](https://www.python.org/dev/peps/pep-0440/). - - Fill in the release description. You can use the "Generate release notes" function to get a draft for this -- Commit your changes and push to main -- Publish the release -- Go to Actions and approve the release workflow -- Check that the workflow runs successfully +- To release you need to set the `PYPI_TOKEN` value in GitHub. From be9adc38298e35f18ed32ad89362ef00e11f127e Mon Sep 17 00:00:00 2001 From: Jacob Coffee Date: Tue, 19 Sep 2023 22:31:32 -0500 Subject: [PATCH 2/6] feat: initialize project template repo --- .all-contributorsrc | 2 +- .github/CODEOWNERS | 7 + .github/ISSUE_TEMPLATE/BUG.yaml | 83 -- .github/ISSUE_TEMPLATE/DOCS.yaml | 13 - .github/ISSUE_TEMPLATE/REQUEST.yaml | 37 - .github/ISSUE_TEMPLATE/config.yaml | 1 - .github/dependabot.yaml | 6 - .github/workflows/cd.yaml | 27 + .github/workflows/ci.yaml | 101 +- .github/workflows/codeql.yml | 22 - .github/workflows/docs-preview.yaml | 72 + .github/workflows/docs.yaml | 12 +- .github/workflows/pr-title.yaml | 20 + .github/workflows/publish.yaml | 4 +- .github/workflows/test.yaml | 60 - CONTRIBUTING.rst | 78 + LICENSE | 2 +- Makefile | 8 +- README.md | 83 +- docs/PYPI_README.md | 77 +- docs/_static/css/custom.css | 66 + docs/_static/logo.png | Bin 0 -> 296255 bytes docs/_static/style.css | 30 - docs/_static/versions.json | 1 - docs/conf.py | 187 ++- docs/contribution-guide.rst | 3 + pdm.lock | 2072 --------------------------- pyproject.toml | 55 +- sonar-project.properties | 6 +- src/__metadata__.py | 11 + tools/pypi_readme.py | 2 +- tools/sphinx_ext/changelog.py | 2 +- 32 files changed, 587 insertions(+), 2563 deletions(-) create mode 100644 .github/CODEOWNERS delete mode 100644 .github/ISSUE_TEMPLATE/BUG.yaml delete mode 100644 .github/ISSUE_TEMPLATE/DOCS.yaml delete mode 100644 .github/ISSUE_TEMPLATE/REQUEST.yaml delete mode 100644 .github/ISSUE_TEMPLATE/config.yaml delete mode 100644 .github/dependabot.yaml create mode 100644 .github/workflows/cd.yaml delete mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/docs-preview.yaml create mode 100644 .github/workflows/pr-title.yaml delete mode 100644 .github/workflows/test.yaml create mode 100644 CONTRIBUTING.rst create mode 100644 docs/_static/css/custom.css create mode 100644 docs/_static/logo.png delete mode 100644 docs/_static/style.css delete mode 100644 docs/_static/versions.json create mode 100644 docs/contribution-guide.rst delete mode 100644 pdm.lock create mode 100644 src/__metadata__.py diff --git a/.all-contributorsrc b/.all-contributorsrc index a9c36f9..9a63a94 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,7 +1,7 @@ { "contributorsPerLine": 7, "projectName": "project-template", - "projectOwner": "litestar-org", + "projectOwner": "jolt-org", "repoType": "github", "repoHost": "https://github.com", "commitConvention": "angular", diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..c13d1f3 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,7 @@ +# Code owner settings for `jolt-org` +# @maintainers should be assigned to all reviews. +# Most specific assignment takes precedence though, so if you add a more specific thing than the `*` glob, you must also add @maintainers +# For more info about code owners see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-example + +# Global Assignment +* @jolt-org/maintainers @jolt-org/members diff --git a/.github/ISSUE_TEMPLATE/BUG.yaml b/.github/ISSUE_TEMPLATE/BUG.yaml deleted file mode 100644 index 1d27fd2..0000000 --- a/.github/ISSUE_TEMPLATE/BUG.yaml +++ /dev/null @@ -1,83 +0,0 @@ -name: "Bug Report" -description: Create an issue for a bug. -title: "Bug: " -labels: ["bug", "triage required"] -body: - - type: textarea - id: description - attributes: - label: "Description" - description: Please enter an description of the bug you are encountering - placeholder: - validations: - required: true - - type: input - id: reprod-url - attributes: - label: "URL to code causing the issue" - description: Please enter the URL to provide a reproduction of the issue, if applicable - placeholder: ex. https://github.com/USERNAME/REPO-NAME - validations: - required: false - - type: textarea - id: mcve - attributes: - label: "MCVE" - description: "Please provide a minimal, complete, and verifiable example of the issue." - value: | - ```py - # Your MCVE code here - ``` - render: python - validations: - required: false - - type: textarea - id: reprod - attributes: - label: "Steps to reproduce" - description: Please enter the exact steps to reproduce the issue - value: | - 1. Go to '...' - 2. Click on '....' - 3. Scroll down to '....' - 4. See error - render: bash - validations: - required: false - - type: textarea - id: screenshot - attributes: - label: "Screenshots" - description: If applicable, add screenshots to help explain your problem. - value: | - "![SCREENSHOT_DESCRIPTION](SCREENSHOT_LINK.png)" - render: bash - validations: - required: false - - type: textarea - id: logs - attributes: - label: "Logs" - description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. - render: bash - validations: - required: false - - type: textarea - id: version - attributes: - label: "Litestar Version" - description: What version of Litestar are you using when encountering this issue? - validations: - required: true - - type: checkboxes - id: platform - attributes: - label: "Platform" - description: What platform are you encountering the issue on? - options: - - label: "Linux" - - label: "Mac" - - label: "Windows" - - label: "Other (Please specify in the description above)" - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/DOCS.yaml b/.github/ISSUE_TEMPLATE/DOCS.yaml deleted file mode 100644 index 02b4dd0..0000000 --- a/.github/ISSUE_TEMPLATE/DOCS.yaml +++ /dev/null @@ -1,13 +0,0 @@ -name: "Documentation Update" -description: Create an issue for documentation changes -title: "Docs: <title>" -labels: ["documentation"] -body: - - type: textarea - id: summary - attributes: - label: "Summary" - description: Provide a brief summary of your feature request - placeholder: Describe in a few lines your feature request - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/REQUEST.yaml b/.github/ISSUE_TEMPLATE/REQUEST.yaml deleted file mode 100644 index 90446af..0000000 --- a/.github/ISSUE_TEMPLATE/REQUEST.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: "Feature Request" -description: Create an issue for a new feature request -title: "Enhancement: <title>" -labels: ["enhancement"] -body: - - type: textarea - id: summary - attributes: - label: "Summary" - description: Provide a brief summary of your feature request - placeholder: Describe in a few lines your feature request - validations: - required: true - - type: textarea - id: basic_example - attributes: - label: "Basic Example" - description: Indicate here some basic examples of your feature. - placeholder: Provide some basic example of your feature request - validations: - required: false - - type: textarea - id: drawbacks - attributes: - label: "Drawbacks and Impact" - description: What are the drawbacks or impacts of your feature request? - placeholder: Describe any the drawbacks or impacts of your feature request - validations: - required: false - - type: textarea - id: unresolved_question - attributes: - label: "Unresolved questions" - description: What, if any, unresolved questions do you have about your feature request? - placeholder: Identify any unresolved issues. - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yaml deleted file mode 100644 index 3ba13e0..0000000 --- a/.github/ISSUE_TEMPLATE/config.yaml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml deleted file mode 100644 index 1230149..0000000 --- a/.github/dependabot.yaml +++ /dev/null @@ -1,6 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml new file mode 100644 index 0000000..e641790 --- /dev/null +++ b/.github/workflows/cd.yaml @@ -0,0 +1,27 @@ +name: Continuous Deployment + +on: + push: + tags: + - "v*.*.*" + +jobs: + generate-changelog: + name: Generate changelog + runs-on: ubuntu-22.04 + outputs: + release_body: ${{ steps.git-cliff.outputs.content }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Generate a changelog + uses: orhun/git-cliff-action@main + id: git-cliff + with: + config: pyproject.toml + args: -vv --latest --strip header + env: + OUTPUT: docs/CHANGELOG.rst diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 92bd3e5..bc7a145 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,4 +1,4 @@ -name: Tests and Linting +name: Tests And Linting on: pull_request: @@ -24,67 +24,80 @@ jobs: uses: actions/cache@v3 with: path: ~/.cache/pre-commit/ - key: pre-commit-|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }} + key: pre-commit|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }} - name: Execute Pre-Commit run: pre-commit run --show-diff-on-failure --color=always --all-files test: + runs-on: ubuntu-latest strategy: fail-fast: true matrix: python-version: ["3.8", "3.9", "3.10", "3.11"] - uses: ./.github/workflows/test.yaml - with: - python-version: ${{ matrix.python-version }} - coverage: ${{ matrix.python-version == '3.11' }} + timeout-minutes: 30 + defaults: + run: + shell: bash + steps: + - name: Check out repository + uses: actions/checkout@v4 - test-platform-compat: - if: github.event_name == 'push' - strategy: - fail-fast: true - matrix: - os: ["macos-latest", "windows-latest"] - uses: ./.github/workflows/test.yaml - with: - python-version: "3.11" - os: ${{ matrix.os }} + - name: Install Microsoft ODBC Drivers + run: sudo ACCEPT_EULA=Y apt-get install msodbcsql18 -y - sonar: + - uses: pdm-project/setup-pdm@v3 + name: Set up PDM + with: + python-version: ${{ matrix.python-version }} + allow-python-prereleases: true + cache: true + + - name: Install dependencies + run: pdm install + + - name: Test + run: pdm run pytest -m "" -n auto + + build-docs: needs: - - test - validate - if: github.event.pull_request.head.repo.fork == false && github.repository_owner == 'litestar-org' + if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - - name: Download Artifacts - uses: actions/download-artifact@v3 + + - name: Install Microsoft ODBC + run: sudo ACCEPT_EULA=Y apt-get install msodbcsql18 -y + + - name: Set up Python + uses: actions/setup-python@v4 with: - name: coverage-xml - - name: Fix coverage file for sonarcloud - run: sed -i "s/home\/runner\/work\/litestar\/litestar/github\/workspace/g" coverage.xml - - name: SonarCloud Scan - uses: sonarsource/sonarcloud-github-action@master + python-version: "3.11" + + - uses: pdm-project/setup-pdm@v3 + name: Set up PDM + with: + python-version: "3.11" + allow-python-prereleases: true + cache: true + + - name: Install dependencies + run: pdm install -G:docs + + - name: Build docs + run: pdm run make docs + + - name: Save PR number env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + PR_NUMBER: ${{ github.event.number }} + run: echo $PR_NUMBER > .pr_number - codeql: - needs: - - test - - validate - runs-on: ubuntu-latest - permissions: - security-events: write - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Initialize CodeQL Without Dependencies - uses: github/codeql-action/init@v2 + - name: Upload artifact + uses: actions/upload-artifact@v3 with: - setup-python-dependencies: false - languages: python - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + name: docs-preview + path: | + docs/_build/html + .pr_number diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml deleted file mode 100644 index ed42fa8..0000000 --- a/.github/workflows/codeql.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Scheduled CodeQL - -on: - schedule: - - cron: "0 4 * * *" - -jobs: - codeql: - runs-on: ubuntu-latest - permissions: - security-events: write - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - ref: "main" - - - name: Initialize CodeQL With Dependencies - uses: github/codeql-action/init@v2 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/docs-preview.yaml b/.github/workflows/docs-preview.yaml new file mode 100644 index 0000000..62aa82f --- /dev/null +++ b/.github/workflows/docs-preview.yaml @@ -0,0 +1,72 @@ +name: Deploy Documentation Preview + +on: + workflow_run: + workflows: [Tests And Linting] + types: [completed] + +jobs: + deploy: + if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' }} + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Download artifact + uses: dawidd6/action-download-artifact@v2 + with: + workflow_conclusion: success + run_id: ${{ github.event.workflow_run.id }} + path: docs-preview + name: docs-preview + + - name: Set PR number + run: echo "PR_NUMBER=$(cat docs-preview/.pr_number)" >> $GITHUB_ENV + + - name: Deploy docs preview + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: docs-preview/docs/_build/html + token: ${{ secrets.DOCS_PREVIEW_DEPLOY_TOKEN }} + repository-name: jolt-org/project-template-docs-preview + clean: false + target-folder: ${{ env.PR_NUMBER }} + branch: gh-pages + + - uses: actions/github-script@v6 + env: + PR_NUMBER: ${{ env.PR_NUMBER }} + with: + script: | + const issue_number = process.env.PR_NUMBER + const body = "Documentation preview will be available shortly at https://jolt-org.github.io/project-template-docs-preview/" + issue_number + + const opts = github.rest.issues.listComments.endpoint.merge({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issue_number, + }); + + const comments = await github.paginate(opts) + + for (const comment of comments) { + if (comment.user.id === 41898282 && comment.body === body) { + await github.rest.issues.deleteComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: comment.id + }) + } + } + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issue_number, + body: body, + }) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 9f96b55..6eab7c6 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -3,6 +3,9 @@ name: Documentation Building on: release: types: [published] + push: + branches: + - main jobs: docs: @@ -24,13 +27,18 @@ jobs: cache: true - name: Install dependencies - run: pdm install + run: pdm install -G:docs - name: Fetch gh pages run: git fetch origin gh-pages --depth=1 - - name: Build docs + - name: Build release docs run: pdm run python tools/build_docs.py docs-build + if: github.event_name == 'release' + + - name: Build dev docs + run: pdm run python tools/build_docs.py docs-build + if: github.event_name == 'push' - name: Deploy uses: JamesIves/github-pages-deploy-action@v4 diff --git a/.github/workflows/pr-title.yaml b/.github/workflows/pr-title.yaml new file mode 100644 index 0000000..f4f5d1c --- /dev/null +++ b/.github/workflows/pr-title.yaml @@ -0,0 +1,20 @@ +name: "Lint PR Title" + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +permissions: + pull-requests: read + +jobs: + main: + name: Validate PR title + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index f9bd8ee..ba015e3 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -3,12 +3,14 @@ name: Latest Release on: release: types: [published] + workflow_dispatch: jobs: publish-release: runs-on: ubuntu-latest permissions: id-token: write + environment: release steps: - name: Check out repository uses: actions/checkout@v4 @@ -24,7 +26,7 @@ jobs: allow-python-prereleases: true cache: true - - name: Build package distributions + - name: Build package run: pdm build - name: Publish package distributions to PyPI diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index e6ee38a..0000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,60 +0,0 @@ -name: Test - -on: - workflow_call: - inputs: - python-version: - required: true - type: string - coverage: - required: false - type: boolean - default: false - os: - required: false - type: string - default: "ubuntu-latest" - -jobs: - test: - runs-on: ${{ inputs.os }} - timeout-minutes: 10 - defaults: - run: - shell: bash - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Set up python ${{ inputs.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ inputs.python-version }} - - - uses: pdm-project/setup-pdm@v3 - name: Set up PDM - with: - python-version: ${{ inputs.python-version }} - allow-python-prereleases: true - cache: true - - - name: Install dependencies - run: pdm install - - - name: Set python PATH - run: echo "PYTHONPATH=$PWD" >> $GITHUB_ENV - - - name: Test - if: ${{ !inputs.coverage }} - run: | - pdm run pytest - - - name: Test with coverage - if: inputs.coverage - run: pdm run pytest docs/examples tests --cov=src --cov-report=xml - - - uses: actions/upload-artifact@v3 - if: inputs.coverage - with: - name: coverage-xml - path: coverage.xml diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000..3fd6f2f --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,78 @@ +Contribution guide +================== + +Setting up the environment +-------------------------- + +1. Install `Pizza Delivery Man <https://pdm.fming.dev/latest/>`_ +2. Run ``pdm install -G:all`` to create a `virtual environment <https://docs.python.org/3/tutorial/venv.html>`_ and install + the dependencies +3. If you're working on the documentation and need to build it locally, install the extra dependencies with ``pdm install -G:docs`` +4. Install `pre-commit <https://pre-commit.com/>`_ +5. Run ``pre-commit install`` to install pre-commit hooks + +Code contributions +------------------ + +Workflow +++++++++ + +1. `Fork <https://github.com/jolt-org/project-template/fork>`_ the `project-template repository <https://github.com/jolt-org/project-template>`_ +2. Clone your fork locally with git +3. `Set up the environment <#setting-up-the-environment>`_ +4. Make your changes +5. (Optional) Run ``pre-commit run --all-files`` to run linters and formatters. This step is optional and will be executed + automatically by git before you make a commit, but you may want to run it manually in order to apply fixes +6. Commit your changes to git +7. Push the changes to your fork +8. Open a `pull request <https://docs.github.com/en/pull-requests>`_. Give the pull request a descriptive title + indicating what it changes. If it has a corresponding open issue, the issue number should be included in the title as + well. For example a pull request that fixes issue ``bug: Increased stack size making it impossible to find needle #100`` + could be titled ``fix(#100): Make needles easier to find by applying fire to haystack`` + +.. tip:: Pull requests and commits all need to follow the + `Conventional Commit format <https://www.conventionalcommits.org>`_ + +Guidelines for writing code +---------------------------- + +- All code should be fully `typed <https://peps.python.org/pep-0484/>`_. This is enforced via + `mypy <https://mypy.readthedocs.io/en/stable/>`_. +- All code should be tested. This is enforced via `pytest <https://docs.pytest.org/en/stable/>`_. +- All code should be properly formatted. This is enforced via `black <https://black.readthedocs.io/en/stable/>`_ and `Ruff <https://beta.ruff.rs/docs/>`_. + +Writing and running tests ++++++++++++++++++++++++++ + +.. todo:: Write this section + +Project documentation +--------------------- + +The documentation is located in the ``/docs`` directory and is `ReST <https://docutils.sourceforge.io/rst.html>`_ and +`Sphinx <https://www.sphinx-doc.org/en/master/>`_. If you're unfamiliar with any of those, +`ReStructuredText primer <https://www.sphinx-doc.org/en/master/lib/usage/restructuredtext/basics.html>`_ and +`Sphinx quickstart <https://www.sphinx-doc.org/en/master/lib/usage/quickstart.html>`_ are recommended reads. + +Running the docs locally +++++++++++++++++++++++++ + +To run or build the docs locally, you need to first install the required dependencies: + +``pdm install -G:docs`` + +Then you can serve the documentation with ``make docs-serve``, or build them with ``make docs``. + +Creating a new release +---------------------- + +1. Increment the version in `pyproject.toml <https://github.com/jolt-org/project-template/blob/main/pyproject.toml>`_. + .. note:: The version should follow `semantic versioning <https://semver.org/>`_ and `PEP 440 <https://www.python.org/dev/peps/pep-0440/>`_. +2. `Draft a new release <https://github.com/jolt-org/project-template/releases/new>`_ on GitHub + + * Use ``vMAJOR.MINOR.PATCH`` (e.g. ``v1.2.3``) as both the tag and release title + * Fill in the release description. You can use the "Generate release notes" function to get a draft for this +3. Commit your changes and push to ``main`` +4. Publish the release +5. Go to `Actions <https://github.com/jolt-org/project-template/actions>`_ and approve the release workflow +6. Check that the workflow runs successfully diff --git a/LICENSE b/LICENSE index 4e58f77..e93b168 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2021, 2022, 2023 Litestar Org. +Copyright (c) 2023 Jolt Org. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile index 263cb4d..4470769 100644 --- a/Makefile +++ b/Makefile @@ -31,7 +31,9 @@ upgrade: ## Upgrade all dependencies to the latest stable versio # ============================================================================= .PHONY: install-pdm install-pdm: ## Install latest version of PDM - @curl -sSL https://pdm.fming.dev/install-pdm.py | python3 - + @curl -sSLO https://pdm.fming.dev/install-pdm.py && \ + curl -sSL https://pdm.fming.dev/install-pdm.py.sha256 | shasum -a 256 -c - && \ + python3 install-pdm.py install: ## Install the project and @if ! $(PDM) --version > /dev/null; then echo '=> Installing PDM'; $(MAKE) install-pdm; fi @@ -70,7 +72,7 @@ lint: ## Runs pre-commit hooks; includes ruff linting, codespell, bl .PHONY: coverage coverage: ## Run the tests and generate coverage report @echo "=> Running tests with coverage" - @$(ENV_PREFIX)pytest tests --cov=src + @$(ENV_PREFIX)pytest tests --cov=project-template @$(ENV_PREFIX)coverage html @$(ENV_PREFIX)coverage xml @echo "=> Coverage report generated" @@ -108,7 +110,7 @@ docs-clean: ## Dump the existing built docs docs-serve: docs-clean ## Serve the docs locally @echo "=> Serving documentation" - $(ENV_PREFIX)sphinx-autobuild docs docs/_build/ -j auto --watch src --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002 + $(ENV_PREFIX)sphinx-autobuild docs docs/_build/ -j auto --watch project-template --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002 docs: docs-clean ## Dump the existing built docs and rebuild them @echo "=> Building documentation" diff --git a/README.md b/README.md index 89dd14e..5208b2c 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,57 @@ -<!--lint ignore--> -<!--lint disable double-link--> - -<!-- markdownlint-disable --> -<p align="center"> - <!-- github-banner-start --> - <img src="https://raw.githubusercontent.com/litestar-org/branding/main/assets/Branding%20-%20SVG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.svg#gh-light-mode-only" alt="Litestar Logo - Light" width="100%" height="auto" /> - <img src="https://raw.githubusercontent.com/litestar-org/branding/main/assets/Branding%20-%20SVG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Dark.svg#gh-dark-mode-only" alt="Litestar Logo - Dark" width="100%" height="auto" /> - <!-- github-banner-end --> -</p> -<!-- markdownlint-restore --> +# project-template <div align="center"> -<!-- prettier-ignore-start --> -<!-- markdown-link-check-disable --> - -| Project | | Status | -| --------- | :-- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| CI/CD | | [![Latest Release](https://github.com/litestar-org/litestar/actions/workflows/publish.yaml/badge.svg?branch=main)](https://github.com/litestar-org/litestar/actions/workflows/publish.yaml) [![ci](https://github.com/litestar-org/litestar/actions/workflows/ci.yaml/badge.svg)](https://github.com/litestar-org/litestar/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/litestar-org/litestar/actions/workflows/docs.yaml/badge.svg?branch=main)](https://github.com/litestar-org/litestar/actions/workflows/docs.yaml) | -| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=coverage)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) | -| Package | | [![PyPI - Version](https://img.shields.io/pypi/v/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641)](https://badge.fury.io/py/litestar) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641) ![Starlite PyPI - Downloads](https://img.shields.io/pypi/dm/starlite?logo=python&label=starlite%20downloads&labelColor=202235&color=edb641&logoColor=edb641) ![Litestar PyPI - Downloads](https://img.shields.io/pypi/dm/litestar?logo=python&label=litestar%20downloads&labelColor=202235&color=edb641&logoColor=edb641) | -| Community | | [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/litestarapi?label=r%2FLitestar&logo=reddit&labelColor=202235&color=edb641&logoColor=edb641)](https://reddit.com/r/litestarapi) [![Discord](https://img.shields.io/discord/919193495116337154?labelColor=202235&color=edb641&label=chat%20on%20discord&logo=discord&logoColor=edb641)](https://discord.gg/X3FJqy8d2j) [![Matrix](https://img.shields.io/badge/chat%20on%20Matrix-bridged-202235?labelColor=202235&color=edb641&logo=matrix&logoColor=edb641)](https://matrix.to/#/#litestar:matrix.org) [![Twitter](https://img.shields.io/twitter/follow/LitestarAPI?labelColor=202235&color=edb641&logo=twitter&logoColor=edb641&style=flat)](https://twitter.com/LitestarAPI) [![Blog](https://img.shields.io/badge/Blog-litestar.dev-202235?logo=blogger&labelColor=202235&color=edb641&logoColor=edb641)](https://blog.litestar.dev) | -| Meta | | [![Litestar Project](https://img.shields.io/badge/Litestar%20Org-%E2%AD%90%20Litestar-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/litestar-org/litestar) [![types - Mypy](https://img.shields.io/badge/types-Mypy-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://spdx.org/licenses/) [![Litestar Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23edb641.svg?&logo=github&logoColor=edb641&labelColor=202235)](https://github.com/sponsors/litestar-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=202235)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=202235&logoColor=edb641)](https://github.com/psf/black) [![All Contributors](https://img.shields.io/github/all-contributors/litestar-org/project-template?labelColor=202235&color=edb641&logoColor=edb641)](#contributors-) | - -<!-- prettier-ignore-end --> -</div> -# project-template +| Project | | Status | +| --------- | :-- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| CI/CD | | [![Latest Release](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml) [![Tests And Linting](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml) | +| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=coverage)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) | +| Community | | [![Discord](https://img.shields.io/discord/1149784127659319356?labelColor=F50057&color=202020&label=chat%20on%20discord&logo=discord&logoColor=202020)](https://discord.gg/XpFNTjjtTK) | +| Meta | | [![Jolt Project](https://img.shields.io/badge/Jolt%20Org-%E2%AD%90-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/jolt-org/) [![types - Mypy](https://img.shields.io/badge/types-Mypy-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://spdx.org/licenses/) [![Jolt Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23202020.svg?&logo=github&logoColor=202020&labelColor=F50057)](https://github.com/sponsors/jolt-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=F50057)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=F50057&logoColor=202020)](https://github.com/psf/black) | -Template repository for packages belonging to [@litestar-org](https://github.com/litestar-org) organization. +</div> -Usage: +## About -- Pick this template in GitHub. -- If you don't want to use the `src` folder, rename it and replace all references to `src` with the new target folder. -- Run `pre-commit install && pre-commit autoupdate` -- Update pyproject.toml with your dependencies and run `pdm update` to create a lock file. -- Update the project description, keywords, author, maintainers etc. in pyproject.toml +This project is a template repository for [Jolt][jolt-org] projects. It is designed to be a starting point for +any project that is a part of the Jolt organization. -## Docs +## Usage > [!IMPORTANT]\ -> TODO +> +> - [Create a new repository][newrepo] using this template repository. +> - Run the [new_project.py][tools/new_project.py] script to initialize the project and set the project name. +> - Update the [README.md][README.md] file with the project-specific information. +> - (Optional if not using docs) Create the `$project-name-docs-preview` repository. +> - If the project does not utilize docs, remove the `.github/workflows/docs-preview.yaml`. +> - Remove any template-specific sections from the repos +> - Commit the changes and open the repo up for contributions! + +## Contributing + +All [Jolt][jolt-org] projects will always be a community-centered, available for contributions of any size. -## Sonar +Before contributing, please review the [contribution guide][contributing]. -- Import the repository into sonarcloud and update the sonar properties file to use the correct project key. -- Add the `SONAR_TOKEN` secret in GitHub as an action secret. +If you have any questions, reach out to us on [Discord][discord], our org-wide [GitHub discussions][jolt-discussions] page, +or the [project-specific GitHub discussions page][project-discussions]. -## Release +<hr> + +<!-- markdownlint-disable --> +<p align="center"> + <!-- github-banner-start --> + <img src="https://raw.githubusercontent.com/jolt-org/meta/2901c9c5c5895a83fbfa56944c33bca287f88d42/branding/SVG%20-%20Transparent/logo-full-wide.svg" alt="Litestar Logo - Light" width="20%" height="auto" /> + <br>A <a href="https://github.com/jolt-org">Jolt Organization</a> Project + <!-- github-banner-end --> +</p> -- To release you need to set the `PYPI_TOKEN` value in GitHub. +[jolt-org]: https://github.com/jolt-org +[contributing]: https://docs.project-template.jolt.rs/latest/contribution-guide.html +[discord]: https://discord.gg/XpFNTjjtTK +[jolt-discussions]: https://github.com/orgs/jolt-org/discussions +[project-discussions]: https://github.com/jolt-org/project-template/discussions +[project-docs]: https://docs.project-template.jolt.rs +[install-guide]: https://docs.project-template.jolt.rs/latest/#installation +[newrepo]: https://github.com/organizations/jolt-org/repositories/new?template=project-template diff --git a/docs/PYPI_README.md b/docs/PYPI_README.md index b405d34..252d7d6 100644 --- a/docs/PYPI_README.md +++ b/docs/PYPI_README.md @@ -1,49 +1,54 @@ -<!--lint ignore--> -<!--lint disable double-link--> - -<!-- markdownlint-disable --> -<p align="center"> - <img src="https://raw.githubusercontent.com/litestar-org/branding/473f54621e55cde9acbb6fcab7fc03036173eb3d/assets/Branding%20-%20PNG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.png" alt="Litestar Logo - Light" width="100%" height="auto" /> -</p> -<!-- markdownlint-restore --> +# project-template <div align="center"> -<!-- prettier-ignore-start --> -<!-- markdown-link-check-disable --> - -| Project | | Status | -| --------- | :-- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| CI/CD | | [![Latest Release](https://github.com/litestar-org/litestar/actions/workflows/publish.yaml/badge.svg?branch=main)](https://github.com/litestar-org/litestar/actions/workflows/publish.yaml) [![ci](https://github.com/litestar-org/litestar/actions/workflows/ci.yaml/badge.svg)](https://github.com/litestar-org/litestar/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/litestar-org/litestar/actions/workflows/docs.yaml/badge.svg?branch=main)](https://github.com/litestar-org/litestar/actions/workflows/docs.yaml) | -| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=coverage)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_project-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_litestar) | -| Package | | [![PyPI - Version](https://img.shields.io/pypi/v/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641)](https://badge.fury.io/py/litestar) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/litestar?labelColor=202235&color=edb641&logo=python&logoColor=edb641) ![Starlite PyPI - Downloads](https://img.shields.io/pypi/dm/starlite?logo=python&label=starlite%20downloads&labelColor=202235&color=edb641&logoColor=edb641) ![Litestar PyPI - Downloads](https://img.shields.io/pypi/dm/litestar?logo=python&label=litestar%20downloads&labelColor=202235&color=edb641&logoColor=edb641) | -| Community | | [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/litestarapi?label=r%2FLitestar&logo=reddit&labelColor=202235&color=edb641&logoColor=edb641)](https://reddit.com/r/litestarapi) [![Discord](https://img.shields.io/discord/919193495116337154?labelColor=202235&color=edb641&label=chat%20on%20discord&logo=discord&logoColor=edb641)](https://discord.gg/X3FJqy8d2j) [![Matrix](https://img.shields.io/badge/chat%20on%20Matrix-bridged-202235?labelColor=202235&color=edb641&logo=matrix&logoColor=edb641)](https://matrix.to/#/#litestar:matrix.org) [![Twitter](https://img.shields.io/twitter/follow/LitestarAPI?labelColor=202235&color=edb641&logo=twitter&logoColor=edb641&style=flat)](https://twitter.com/LitestarAPI) [![Blog](https://img.shields.io/badge/Blog-litestar.dev-202235?logo=blogger&labelColor=202235&color=edb641&logoColor=edb641)](https://blog.litestar.dev) | -| Meta | | [![Litestar Project](https://img.shields.io/badge/Litestar%20Org-%E2%AD%90%20Litestar-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/litestar-org/litestar) [![types - Mypy](https://img.shields.io/badge/types-Mypy-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://spdx.org/licenses/) [![Litestar Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23edb641.svg?&logo=github&logoColor=edb641&labelColor=202235)](https://github.com/sponsors/litestar-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=202235)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=202235&logoColor=edb641)](https://github.com/psf/black) [![All Contributors](https://img.shields.io/github/all-contributors/litestar-org/project-template?labelColor=202235&color=edb641&logoColor=edb641)](#contributors-) | - -<!-- prettier-ignore-end --> -</div> -# project-template +| Project | | Status | +| --------- | :-- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| CI/CD | | [![Latest Release](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml) [![Tests And Linting](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml) | +| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=coverage)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) | +| Community | | [![Discord](https://img.shields.io/discord/1149784127659319356?labelColor=F50057&color=202020&label=chat%20on%20discord&logo=discord&logoColor=202020)](https://discord.gg/XpFNTjjtTK) | +| Meta | | [![Jolt Project](https://img.shields.io/badge/Jolt%20Org-%E2%AD%90-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/jolt-org/) [![types - Mypy](https://img.shields.io/badge/types-Mypy-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://spdx.org/licenses/) [![Jolt Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23202020.svg?&logo=github&logoColor=202020&labelColor=F50057)](https://github.com/sponsors/jolt-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=F50057)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=F50057&logoColor=202020)](https://github.com/psf/black) | -Template repository for packages belonging to [@litestar-org](https://github.com/litestar-org) organization. +</div> -Usage: +## About -- Pick this template in GitHub. -- If you don't want to use the `src` folder, rename it and replace all references to `src` with the new target folder. -- Run `pre-commit install && pre-commit autoupdate` -- Update pyproject.toml with your dependencies and run `pdm update` to create a lock file. -- Update the project description, keywords, author, maintainers etc. in pyproject.toml +This project is a template repository for [Jolt][jolt-org] projects. It is designed to be a starting point for +any project that is a part of the Jolt organization. -## Docs +## Usage > [!IMPORTANT]\ -> TODO +> +> - [Create a new repository][newrepo] using this template repository. +> - Run the [new_project.py][tools/new_project.py] script to initialize the project and set the project name. +> - Update the [README.md][README.md] file with the project-specific information. +> - (Optional if not using docs) Create the `$project-name-docs-preview` repository. +> - If the project does not utilize docs, remove the `.github/workflows/docs-preview.yaml`. +> - Remove any template-specific sections from the repos +> - Commit the changes and open the repo up for contributions! + +## Contributing + +All [Jolt][jolt-org] projects will always be a community-centered, available for contributions of any size. + +Before contributing, please review the [contribution guide][contributing]. -## Sonar +If you have any questions, reach out to us on [Discord][discord], our org-wide [GitHub discussions][jolt-discussions] page, +or the [project-specific GitHub discussions page][project-discussions]. -- Import the repository into sonarcloud and update the sonar properties file to use the correct project key. -- Add the `SONAR_TOKEN` secret in GitHub as an action secret. +<hr> -## Release +<!-- markdownlint-disable --> +<p align="center"> + <img src="https://raw.githubusercontent.com/jolt-org/branding/473f54621e55cde9acbb6fcab7fc03036173eb3d/assets/Branding%20-%20PNG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.png" alt="Litestar Logo - Light" width="100%" height="auto" /> +</p> -- To release you need to set the `PYPI_TOKEN` value in GitHub. +[jolt-org]: https://github.com/jolt-org +[contributing]: https://docs.project-template.jolt.rs/latest/contribution-guide.html +[discord]: https://discord.gg/XpFNTjjtTK +[jolt-discussions]: https://github.com/orgs/jolt-org/discussions +[project-discussions]: https://github.com/jolt-org/project-template/discussions +[project-docs]: https://docs.project-template.jolt.rs +[install-guide]: https://docs.project-template.jolt.rs/latest/#installation +[newrepo]: https://github.com/organizations/jolt-org/repositories/new?template=project-template diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 0000000..35628fc --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,66 @@ +/*brand_colors = {*/ +/* "--brand-primary": {"rgb": "0, 150, 76", "hex": "#00964c"},*/ +/* "--brand-secondary": {"rgb": "99, 99, 99", "hex": "#636363"},*/ +/* "--brand-green": {"rgb": "225, 39, 38", "hex": "#e12726"},*/ +/* "--brand-alert": {"rgb": "241, 81, 82", "hex": "#f15152"},*/ +/* "--brand-dark": {"rgb": "32, 32, 32", "hex": "#202020"},*/ +/* "--brand-light": {"rgb": "235, 235, 233", "hex": "#EBEBE9"},*/ +/*}*/ + +:root { + --brand-primary: #f50057; + --brand-primary-rgb: 245, 0, 87; + + --brand-secondary: #202020; + --brand-secondary-rgb: 32, 32, 32; + + --brand-tertiary: #a1ada1; + --brand-tertiary-rgb: 161, 173, 161; + + --brand-green: #00f597; + --brand-green-rgb: 0, 245, 151; + + --brand-alert: #f36060; + --brand-alert-rgb: 243, 96, 96; + + --brand-dark: #000000; + --brand-dark-rgb: 0, 0, 0; + + --brand-light: #ebdddd; + --brand-light-rgb: 235, 221, 221; +} + +html.dark, +html.light { + --sd-color-tabs-label-hover: var(--brand-green); +} + +html.light { + --syntax-light-constant: var(--brand-primary); + --syntax-light-meta: var(--brand-primary); + /* --syntax-light-text: #09090a;*/ + /* --syntax-light-cap-bg: #325b76;*/ + /* --syntax-light-pre-bg: #ddefff;*/ + --syntax-light-keyword: var(--brand-primary); + --syntax-light-property: var(--brand-secondary); +} + +html.light .yue { + --yue-c-code-bg: var(--brand-tertiary) !important; + --yue-c-code: var(--brand-primary) !important; + /*--yue-c-black: #11a1ff !important;*/ +} + +html.dark { + --syntax-dark-keyword: var(--brand-primary); + --syntax-dark-property: var(--brand-green); + --syntax-dark-constant: var(--brand-primary); + --syntax-dark-meta: var(--brand-primary); + --syntax-dark-pre-bg: rgba(var(--brand-primary-rgb), 0.1); +} + +html.dark .yue { + --yue-c-code-bg: var(--brand-light) !important; + --yue-c-code: var(--brand-secondary) !important; + /*--yue-c-black: #11a1ff !important;*/ +} diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9505c63bd6f3a629897d428c9ab82dc9fb15946a GIT binary patch literal 296255 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 z�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�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 fdBa9 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 K2wr6CbN;{TA*0a% literal 0 HcmV?d00001 diff --git a/docs/_static/style.css b/docs/_static/style.css deleted file mode 100644 index e7b666c..0000000 --- a/docs/_static/style.css +++ /dev/null @@ -1,30 +0,0 @@ -#version-warning { - top: 0; - position: sticky; - z-index: 60; - width: 100%; - height: 2.5rem; - display: flex; - column-gap: 0.5rem; - justify-content: center; - justify-items: center; - align-items: center; - background-color: #eee; - border-bottom: 2px solid #ae2828; -} - -@media (prefers-color-scheme: dark) { - body:not([data-theme="light"]) #version-warning { - background-color: black; - } -} - -.breaking-change { - font-variant: all-small-caps; - margin-left: 0.4rem; - color: #f55353; -} - -p { - font-size: 1.1em; -} diff --git a/docs/_static/versions.json b/docs/_static/versions.json deleted file mode 100644 index b666f2c..0000000 --- a/docs/_static/versions.json +++ /dev/null @@ -1 +0,0 @@ -{ "versions": ["1"], "latest": "1" } diff --git a/docs/conf.py b/docs/conf.py index 21cb5c8..345e32c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,39 +1,65 @@ -"""Sphinx configuration.""" -from __future__ import annotations +# Configuration file for the Sphinx documentation builder. +import os -from functools import partial -from typing import Any +from project-template.__metadata__ import __project__ as project +from project-template.__metadata__ import __version__ as version -from sphinx.addnodes import document -from sphinx.application import Sphinx +# -- Environmental Data ------------------------------------------------------ -__all__ = ["setup", "update_html_context"] +# -- Project information ----------------------------------------------------- +project = project +author = "Jolt Org" +release = version +release = os.getenv("_PROJECT-TEMPLATE_DOCS_BUILD_VERSION", version.rsplit(".")[0]) +copyright = "2023, Jolt Org" -project = "project-template" -copyright = "2023, Litestar-Org" -author = "Litestar-Org" - +# -- General configuration --------------------------------------------------- extensions = [ - "sphinx.ext.intersphinx", - "sphinx.ext.autosectionlabel", "sphinx.ext.autodoc", "sphinx.ext.napoleon", - "sphinx_design", - "auto_pytabs.sphinx_ext", - "tools.sphinx_ext", + "sphinx.ext.autosectionlabel", + "sphinx.ext.githubpages", + "sphinx.ext.viewcode", + "sphinx.ext.intersphinx", + "docs.fix_missing_references", "sphinx_copybutton", - "sphinxcontrib.mermaid", + "sphinx.ext.todo", + "sphinx.ext.viewcode", + "sphinx_click", + "sphinx_toolbox.collapse", + "sphinx_design", ] -exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] - - intersphinx_mapping = { "python": ("https://docs.python.org/3", None), - "sqlalchemy": ("https://docs.sqlalchemy.org/en/20/", None), } +PY_CLASS = "py:class" +PY_RE = r"py:.*" +PY_METH = "py:meth" +PY_ATTR = "py:attr" +PY_OBJ = "py:obj" +nitpicky = True +nitpick_ignore = [ + # external library / undocumented external + (PY_CLASS, "ExternalType"), + (PY_CLASS, "TypeEngine"), + (PY_CLASS, "UserDefinedType"), + (PY_CLASS, "_types.TypeDecorator"), + (PY_METH, "_types.TypeDecorator.process_bind_param"), + (PY_METH, "_types.TypeDecorator.process_result_value"), + (PY_METH, "type_engine"), + # type vars and aliases / intentionally undocumented + (PY_CLASS, "CollectionT"), + (PY_CLASS, "EmptyType"), + (PY_CLASS, "ModelT"), + (PY_CLASS, "T"), + (PY_CLASS, "AsyncSession"), + (PY_CLASS, "Select"), +] +nitpick_ignore_regex = [ +] napoleon_google_docstring = True napoleon_include_special_with_doc = True @@ -47,66 +73,81 @@ autodoc_default_options = {"special-members": "__init__", "show-inheritance": True, "members": True} autodoc_member_order = "bysource" autodoc_typehints_format = "short" - -nitpicky = True - -auto_pytabs_min_version = (3, 8) -auto_pytabs_max_version = (3, 11) -auto_pytabs_compat_mode = True +autodoc_type_aliases = {"FilterTypes": "FilterTypes"} autosectionlabel_prefix_document = True -suppress_warnings = [ - "autosectionlabel.*", - "ref.python", # TODO: remove when https://github.com/sphinx-doc/sphinx/issues/4961 is fixed -] +todo_include_todos = True -html_theme = "litestar_sphinx_theme" +templates_path = ["_templates"] +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# -- Style configuration ----------------------------------------------------- +html_theme = "shibuya" html_static_path = ["_static"] -html_js_files = ["versioning.js"] -html_css_files = ["style.css"] -html_show_sourcelink = False -html_title = "Litestar Project Template" +html_css_files = ["css/custom.css"] +html_show_sourcelink = True +html_title = "Docs" +html_favicon = "_static/logo.png" +html_logo = "_static/logo.png" +html_context = { + "source_type": "github", + "source_user": "jolt-org", + "source_repo": project.replace("_", "-"), +} +brand_colors = { + "--brand-primary": {"rgb": "245, 0, 87", "hex": "#f50057"}, + "--brand-secondary": {"rgb": "32, 32, 32", "hex": "#202020"}, + "--brand-tertiary": {"rgb": "161, 173, 161", "hex": "#A1ADA1"}, + "--brand-green": {"rgb": "0, 245, 151", "hex": "#00f597"}, + "--brand-alert": {"rgb": "243, 96, 96", "hex": "#f36060"}, + "--brand-dark": {"rgb": "0, 0, 0", "hex": "#000000"}, + "--brand-light": {"rgb": "235, 221, 221", "hex": "#ebdddd"}, +} html_theme_options = { - "use_page_nav": False, - "github_repo_name": "project-template", - "logo": { - "link": "https://github.com/litestar-org/project-template.git", + "logo_target": "/", + "announcement": "This documentation is currently under development.", + "github_url": "https://github.com/jolt-org/project-template", + "nav_links": [ + {"title": "Home", "url": "https://project-template.jolt.rs"}, + {"title": "Docs", "url": "https://docs.project-template.jolt.rs"}, + {"title": "Code", "url": "https://github.com/jolt-org/project-template"}, + ], + "light_css_variables": { + # RGB + "--sy-rc-theme": brand_colors["--brand-primary"]["rgb"], + "--sy-rc-text": brand_colors["--brand-primary"]["rgb"], + "--sy-rc-invert": brand_colors["--brand-primary"]["rgb"], + # "--sy-rc-bg": brand_colors["--brand-secondary"]["rgb"], + # Hex + "--sy-c-link": brand_colors["--brand-secondary"]["hex"], + # "--sy-c-foot-bg": "#191919", + "--sy-c-foot-divider": brand_colors["--brand-primary"]["hex"], + "--sy-c-foot-text": brand_colors["--brand-dark"]["hex"], + "--sy-c-bold": brand_colors["--brand-primary"]["hex"], + "--sy-c-heading": brand_colors["--brand-primary"]["hex"], + "--sy-c-text-weak": brand_colors["--brand-primary"]["hex"], + "--sy-c-text": brand_colors["--brand-dark"]["hex"], + "--sy-c-bg-weak": brand_colors["--brand-dark"]["rgb"], }, - "extra_navbar_items": { - "Documentation": "index", - "Community": { - "Contributing": { - "description": "Learn how to contribute to the Litestar project", - "link": "https://docs.litestar.dev/2/contribution-guide.html", - "icon": "contributing", - }, - "Code of Conduct": { - "description": "Review the etiquette for interacting with the Litestar community", - "link": "https://github.com/litestar-org/.github/blob/main/CODE_OF_CONDUCT.md", - "icon": "coc", - }, - }, - "Help": "https://github.com/orgs/litestar-org/discussions", + "dark_css_variables": { + # RGB + "--sy-rc-theme": brand_colors["--brand-primary"]["rgb"], + "--sy-rc-text": brand_colors["--brand-primary"]["rgb"], + "--sy-rc-invert": brand_colors["--brand-primary"]["rgb"], + "--sy-rc-bg": brand_colors["--brand-dark"]["rgb"], + # Hex + "--sy-c-link": brand_colors["--brand-primary"]["hex"], + "--sy-c-foot-bg": brand_colors["--brand-dark"]["hex"], + "--sy-c-foot-divider": brand_colors["--brand-primary"]["hex"], + "--sy-c-foot-text": brand_colors["--brand-light"]["hex"], + "--sy-c-bold": brand_colors["--brand-primary"]["hex"], + "--sy-c-heading": brand_colors["--brand-primary"]["hex"], + "--sy-c-text-weak": brand_colors["--brand-primary"]["hex"], + "--sy-c-text": brand_colors["--brand-light"]["hex"], + "--sy-c-bg-weak": brand_colors["--brand-dark"]["hex"], + "--sy-c-bg": brand_colors["--brand-primary"]["hex"], }, } - - -def update_html_context( - app: Sphinx, - pagename: str, - templatename: str, - context: dict[str, Any], - doctree: document, -) -> None: - context["generate_toctree_html"] = partial(context["generate_toctree_html"], startdepth=0) - - -def setup(app: Sphinx) -> dict[str, bool]: - app.setup_extension("litestar_sphinx_theme") - app.setup_extension("pydata_sphinx_theme") - app.connect("html-page-context", update_html_context) - - return {"parallel_read_safe": True, "parallel_write_safe": True} diff --git a/docs/contribution-guide.rst b/docs/contribution-guide.rst new file mode 100644 index 0000000..bbd440e --- /dev/null +++ b/docs/contribution-guide.rst @@ -0,0 +1,3 @@ +:orphan: + +.. include:: ../CONTRIBUTING.rst diff --git a/pdm.lock b/pdm.lock deleted file mode 100644 index 6a9e9ba..0000000 --- a/pdm.lock +++ /dev/null @@ -1,2072 +0,0 @@ -# This file is @generated by PDM. -# It is not intended for manual editing. - -[metadata] -groups = ["default", "docs", "lint", "test"] -cross_platform = true -static_urls = false -lock_version = "4.3" -content_hash = "sha256:f54e4d83ad418f88eb74a2a10cb0bd7d9168eeec5c430f9dd89ceed21edd7309" - -[[package]] -name = "accessible-pygments" -version = "0.0.4" -summary = "A collection of accessible pygments styles" -dependencies = [ - "pygments>=1.5", -] -files = [ - {file = "accessible-pygments-0.0.4.tar.gz", hash = "sha256:e7b57a9b15958e9601c7e9eb07a440c813283545a20973f2574a5f453d0e953e"}, - {file = "accessible_pygments-0.0.4-py2.py3-none-any.whl", hash = "sha256:416c6d8c1ea1c5ad8701903a20fcedf953c6e720d64f33dc47bfb2d3f2fa4e8d"}, -] - -[[package]] -name = "alabaster" -version = "0.7.13" -requires_python = ">=3.6" -summary = "A configurable sidebar-enabled Sphinx theme" -files = [ - {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, - {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, -] - -[[package]] -name = "anyio" -version = "4.0.0" -requires_python = ">=3.8" -summary = "High level compatibility layer for multiple asynchronous event loop implementations" -dependencies = [ - "exceptiongroup>=1.0.2; python_version < \"3.11\"", - "idna>=2.8", - "sniffio>=1.1", -] -files = [ - {file = "anyio-4.0.0-py3-none-any.whl", hash = "sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f"}, - {file = "anyio-4.0.0.tar.gz", hash = "sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"}, -] - -[[package]] -name = "apeye" -version = "1.4.1" -requires_python = ">=3.6.1" -summary = "Handy tools for working with URLs and APIs." -dependencies = [ - "apeye-core>=1.0.0b2", - "domdf-python-tools>=2.6.0", - "platformdirs>=2.3.0", - "requests>=2.24.0", -] -files = [ - {file = "apeye-1.4.1-py3-none-any.whl", hash = "sha256:44e58a9104ec189bf42e76b3a7fe91e2b2879d96d48e9a77e5e32ff699c9204e"}, - {file = "apeye-1.4.1.tar.gz", hash = "sha256:14ea542fad689e3bfdbda2189a354a4908e90aee4bf84c15ab75d68453d76a36"}, -] - -[[package]] -name = "apeye-core" -version = "1.1.4" -requires_python = ">=3.6.1" -summary = "Core (offline) functionality for the apeye library." -dependencies = [ - "domdf-python-tools>=2.6.0", - "idna>=2.5", -] -files = [ - {file = "apeye_core-1.1.4-py3-none-any.whl", hash = "sha256:084bc696448d3ac428fece41c1f2eb08fa9d9ce1d1b2f4d43187e3def4528a60"}, - {file = "apeye_core-1.1.4.tar.gz", hash = "sha256:72bb89fed3baa647cb81aa28e1d851787edcbf9573853b5d2b5f87c02f50eaf5"}, -] - -[[package]] -name = "auto-pytabs" -version = "0.4.0" -requires_python = ">=3.8,<4.0" -summary = "Automatically generate code examples for different Python versions in mkdocs or Sphinx based documentations" -dependencies = [ - "ruff>=0.0.260", -] -files = [ - {file = "auto_pytabs-0.4.0-py3-none-any.whl", hash = "sha256:941ca4f21b218249ee4d026ebaf4a8a7788a066fdb223571f1f7b93d44ac6a74"}, - {file = "auto_pytabs-0.4.0.tar.gz", hash = "sha256:4c596aa02ea20c6c85809e5f60a22aa60499dcaa637e52d6313d07c58c5bb61e"}, -] - -[[package]] -name = "auto-pytabs" -version = "0.4.0" -extras = ["sphinx"] -requires_python = ">=3.8,<4.0" -summary = "Automatically generate code examples for different Python versions in mkdocs or Sphinx based documentations" -dependencies = [ - "auto-pytabs==0.4.0", - "sphinx>=4", -] -files = [ - {file = "auto_pytabs-0.4.0-py3-none-any.whl", hash = "sha256:941ca4f21b218249ee4d026ebaf4a8a7788a066fdb223571f1f7b93d44ac6a74"}, - {file = "auto_pytabs-0.4.0.tar.gz", hash = "sha256:4c596aa02ea20c6c85809e5f60a22aa60499dcaa637e52d6313d07c58c5bb61e"}, -] - -[[package]] -name = "autodocsumm" -version = "0.2.11" -requires_python = ">=3.7" -summary = "Extended sphinx autodoc including automatic autosummaries" -dependencies = [ - "Sphinx<8.0,>=2.2", -] -files = [ - {file = "autodocsumm-0.2.11-py3-none-any.whl", hash = "sha256:f1d0a623bf1ad64d979a9e23fd360d1fb1b8f869beaf3197f711552cddc174e2"}, - {file = "autodocsumm-0.2.11.tar.gz", hash = "sha256:183212bd9e9f3b58a96bb21b7958ee4e06224107aa45b2fd894b61b83581b9a9"}, -] - -[[package]] -name = "babel" -version = "2.12.1" -requires_python = ">=3.7" -summary = "Internationalization utilities" -dependencies = [ - "pytz>=2015.7; python_version < \"3.9\"", -] -files = [ - {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, - {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, -] - -[[package]] -name = "beautifulsoup4" -version = "4.12.2" -requires_python = ">=3.6.0" -summary = "Screen-scraping library" -dependencies = [ - "soupsieve>1.2", -] -files = [ - {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, - {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, -] - -[[package]] -name = "black" -version = "23.9.1" -requires_python = ">=3.8" -summary = "The uncompromising code formatter." -dependencies = [ - "click>=8.0.0", - "mypy-extensions>=0.4.3", - "packaging>=22.0", - "pathspec>=0.9.0", - "platformdirs>=2", - "tomli>=1.1.0; python_version < \"3.11\"", - "typing-extensions>=4.0.1; python_version < \"3.11\"", -] -files = [ - {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, - {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, - {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, - {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, - {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, - {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, - {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, - {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, - {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, - {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, - {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, -] - -[[package]] -name = "blacken-docs" -version = "1.16.0" -requires_python = ">=3.8" -summary = "Run Black on Python code blocks in documentation files." -dependencies = [ - "black>=22.1.0", -] -files = [ - {file = "blacken_docs-1.16.0-py3-none-any.whl", hash = "sha256:b0dcb84b28ebfb352a2539202d396f50e15a54211e204a8005798f1d1edb7df8"}, - {file = "blacken_docs-1.16.0.tar.gz", hash = "sha256:b4bdc3f3d73898dfbf0166f292c6ccfe343e65fc22ddef5319c95d1a8dcc6c1c"}, -] - -[[package]] -name = "cachecontrol" -version = "0.13.1" -requires_python = ">=3.7" -summary = "httplib2 caching for requests" -dependencies = [ - "msgpack>=0.5.2", - "requests>=2.16.0", -] -files = [ - {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, - {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, -] - -[[package]] -name = "cachecontrol" -version = "0.13.1" -extras = ["filecache"] -requires_python = ">=3.7" -summary = "httplib2 caching for requests" -dependencies = [ - "cachecontrol==0.13.1", - "filelock>=3.8.0", -] -files = [ - {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, - {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, -] - -[[package]] -name = "certifi" -version = "2023.7.22" -requires_python = ">=3.6" -summary = "Python package for providing Mozilla's CA Bundle." -files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, -] - -[[package]] -name = "cfgv" -version = "3.4.0" -requires_python = ">=3.8" -summary = "Validate configuration and produce human readable error messages." -files = [ - {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, - {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.2.0" -requires_python = ">=3.7.0" -summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, -] - -[[package]] -name = "click" -version = "8.1.7" -requires_python = ">=3.7" -summary = "Composable command line interface toolkit" -dependencies = [ - "colorama; platform_system == \"Windows\"", -] -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[[package]] -name = "codespell" -version = "2.2.5" -requires_python = ">=3.7" -summary = "Codespell" -files = [ - {file = "codespell-2.2.5-py3-none-any.whl", hash = "sha256:efa037f54b73c84f7bd14ce8e853d5f822cdd6386ef0ff32e957a3919435b9ec"}, - {file = "codespell-2.2.5.tar.gz", hash = "sha256:6d9faddf6eedb692bf80c9a94ec13ab4f5fb585aabae5f3750727148d7b5be56"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -summary = "Cross-platform colored terminal text." -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "coverage" -version = "7.3.1" -requires_python = ">=3.8" -summary = "Code coverage measurement for Python" -files = [ - {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, - {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, - {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, - {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, - {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, - {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, - {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, - {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, - {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, - {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, - {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, - {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, - {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, - {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, -] - -[[package]] -name = "coverage" -version = "7.3.1" -extras = ["toml"] -requires_python = ">=3.8" -summary = "Code coverage measurement for Python" -dependencies = [ - "coverage==7.3.1", - "tomli; python_full_version <= \"3.11.0a6\"", -] -files = [ - {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, - {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, - {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, - {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, - {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, - {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, - {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, - {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, - {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, - {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, - {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, - {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, - {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, - {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, -] - -[[package]] -name = "cssutils" -version = "2.7.1" -requires_python = ">=3.7" -summary = "A CSS Cascading Style Sheets library for Python" -files = [ - {file = "cssutils-2.7.1-py3-none-any.whl", hash = "sha256:1e92e0d9dab2ec8af9f38d715393964ba533dc3beacab9b072511dfc241db775"}, - {file = "cssutils-2.7.1.tar.gz", hash = "sha256:340ecfd9835d21df8f98500f0dfcea0aee41cb4e19ecbc2cf94f0a6d36d7cb6c"}, -] - -[[package]] -name = "dict2css" -version = "0.3.0" -requires_python = ">=3.6" -summary = "A μ-library for constructing cascading style sheets from Python dictionaries." -dependencies = [ - "cssutils>=2.2.0", - "domdf-python-tools>=2.2.0", -] -files = [ - {file = "dict2css-0.3.0-py3-none-any.whl", hash = "sha256:ef934ce73a225fdd5f811b484fe9e2dd768f7ef14a89fc8f4eb5672597131d00"}, - {file = "dict2css-0.3.0.tar.gz", hash = "sha256:1e8b1bf580dca2083198f88a60ec88c878a8829d760dfe45483ef80fe2905117"}, -] - -[[package]] -name = "distlib" -version = "0.3.7" -summary = "Distribution utilities" -files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, -] - -[[package]] -name = "docutils" -version = "0.18.1" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -summary = "Docutils -- Python Documentation Utilities" -files = [ - {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, - {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, -] - -[[package]] -name = "domdf-python-tools" -version = "3.6.1" -requires_python = ">=3.6" -summary = "Helpful functions for Python 🐍 🛠️" -dependencies = [ - "importlib-metadata>=3.6.0; python_version < \"3.9\"", - "natsort>=7.0.1", - "typing-extensions>=3.7.4.1", -] -files = [ - {file = "domdf_python_tools-3.6.1-py3-none-any.whl", hash = "sha256:e18158460850957f18e740eb94ede56f580ddb0cb162ab9d9834ed8bbb1b6431"}, - {file = "domdf_python_tools-3.6.1.tar.gz", hash = "sha256:acc04563d23bce4d437dd08af6b9bea788328c412772a044d8ca428a7ad861be"}, -] - -[[package]] -name = "editorconfig" -version = "0.12.3" -summary = "EditorConfig File Locator and Interpreter for Python" -files = [ - {file = "EditorConfig-0.12.3-py3-none-any.whl", hash = "sha256:6b0851425aa875b08b16789ee0eeadbd4ab59666e9ebe728e526314c4a2e52c1"}, - {file = "EditorConfig-0.12.3.tar.gz", hash = "sha256:57f8ce78afcba15c8b18d46b5170848c88d56fd38f05c2ec60dbbfcb8996e89e"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.1.3" -requires_python = ">=3.7" -summary = "Backport of PEP 654 (exception groups)" -files = [ - {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, - {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, -] - -[[package]] -name = "faker" -version = "19.6.1" -requires_python = ">=3.8" -summary = "Faker is a Python package that generates fake data for you." -dependencies = [ - "python-dateutil>=2.4", - "typing-extensions>=3.10.0.1; python_version <= \"3.8\"", -] -files = [ - {file = "Faker-19.6.1-py3-none-any.whl", hash = "sha256:64c8513c53c3a809075ee527b323a0ba61517814123f3137e4912f5d43350139"}, - {file = "Faker-19.6.1.tar.gz", hash = "sha256:5d6b7880b3bea708075ddf91938424453f07053a59f8fa0453c1870df6ff3292"}, -] - -[[package]] -name = "fast-query-parsers" -version = "1.0.3" -requires_python = ">=3.8" -summary = "Ultra-fast query string and url-encoded form-data parsers" -files = [ - {file = "fast_query_parsers-1.0.3-cp38-abi3-macosx_10_7_x86_64.whl", hash = "sha256:afbf71c1b4398dacfb9d84755eb026f8e759f68a066f1f3cc19e471fc342e74f"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:42f26875311d1b151c3406adfa39ec2db98df111a369d75f6fa243ec8462f147"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66630ad423b5b1f5709f82a4d8482cd6aa2f3fa73d2c779ff1877f25dee08d55"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a6e3d816c572a6fad1ae9b93713b2db0d3db6e8f594e035ad52361d668dd94a8"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:0bdcc0ddb4cc69d823c2c0dedd8f5affc71042db39908ad2ca06261bf388cac6"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6720505f2d2a764c76bcc4f3730a9dff69d9871740e46264f6605d73f9ce3794"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e947e7251769593da93832a10861f59565a46149fa117ebdf25377e7b2853936"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55a30b7cee0a53cddf9016b86fdad87221980d5a02a6126c491bd309755e6de9"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc2b457caa38371df1a30cfdfc57bd9bfdf348367abdaf6f36533416a0b0e93"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5736d3c32d6ba23995fa569fe572feabcfcfc30ac9e4709e94cff6f2c456a3d1"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:3a6377eb0c5b172fbc77c3f96deaf1e51708b4b96d27ce173658bf11c1c00b20"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:7ca6be04f443a1b055e910ccad01b1d72212f269a530415df99a87c5f1e9c927"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a70d4d8852606f2dd5b798ab628b9d8dc6970ddfdd9e96f4543eb0cc89a74fb5"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-win32.whl", hash = "sha256:14b3fab7e9a6ac1c1efaf66c3fd2a3fd1e25ede03ed14118035e530433830a11"}, - {file = "fast_query_parsers-1.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:21ae5f3a209aee7d3b84bdcdb33dd79f39fc8cb608b3ae8cfcb78123758c1a16"}, - {file = "fast_query_parsers-1.0.3.tar.gz", hash = "sha256:5200a9e02997ad51d4d76a60ea1b256a68a184b04359540eb6310a15013df68f"}, -] - -[[package]] -name = "filelock" -version = "3.12.4" -requires_python = ">=3.8" -summary = "A platform independent file lock." -files = [ - {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, - {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, -] - -[[package]] -name = "h11" -version = "0.14.0" -requires_python = ">=3.7" -summary = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, -] - -[[package]] -name = "html5lib" -version = "1.1" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -summary = "HTML parser based on the WHATWG HTML specification" -dependencies = [ - "six>=1.9", - "webencodings", -] -files = [ - {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"}, - {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"}, -] - -[[package]] -name = "httpcore" -version = "0.18.0" -requires_python = ">=3.8" -summary = "A minimal low-level HTTP client." -dependencies = [ - "anyio<5.0,>=3.0", - "certifi", - "h11<0.15,>=0.13", - "sniffio==1.*", -] -files = [ - {file = "httpcore-0.18.0-py3-none-any.whl", hash = "sha256:adc5398ee0a476567bf87467063ee63584a8bce86078bf748e48754f60202ced"}, - {file = "httpcore-0.18.0.tar.gz", hash = "sha256:13b5e5cd1dca1a6636a6aaea212b19f4f85cd88c366a2b82304181b769aab3c9"}, -] - -[[package]] -name = "httptools" -version = "0.6.0" -requires_python = ">=3.5.0" -summary = "A collection of framework independent HTTP protocol utils." -files = [ - {file = "httptools-0.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:818325afee467d483bfab1647a72054246d29f9053fd17cc4b86cda09cc60339"}, - {file = "httptools-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72205730bf1be875003692ca54a4a7c35fac77b4746008966061d9d41a61b0f5"}, - {file = "httptools-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33eb1d4e609c835966e969a31b1dedf5ba16b38cab356c2ce4f3e33ffa94cad3"}, - {file = "httptools-0.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdc6675ec6cb79d27e0575750ac6e2b47032742e24eed011b8db73f2da9ed40"}, - {file = "httptools-0.6.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:463c3bc5ef64b9cf091be9ac0e0556199503f6e80456b790a917774a616aff6e"}, - {file = "httptools-0.6.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:82f228b88b0e8c6099a9c4757ce9fdbb8b45548074f8d0b1f0fc071e35655d1c"}, - {file = "httptools-0.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:0781fedc610293a2716bc7fa142d4c85e6776bc59d617a807ff91246a95dea35"}, - {file = "httptools-0.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:721e503245d591527cddd0f6fd771d156c509e831caa7a57929b55ac91ee2b51"}, - {file = "httptools-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:274bf20eeb41b0956e34f6a81f84d26ed57c84dd9253f13dcb7174b27ccd8aaf"}, - {file = "httptools-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:259920bbae18740a40236807915def554132ad70af5067e562f4660b62c59b90"}, - {file = "httptools-0.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03bfd2ae8a2d532952ac54445a2fb2504c804135ed28b53fefaf03d3a93eb1fd"}, - {file = "httptools-0.6.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f959e4770b3fc8ee4dbc3578fd910fab9003e093f20ac8c621452c4d62e517cb"}, - {file = "httptools-0.6.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6e22896b42b95b3237eccc42278cd72c0df6f23247d886b7ded3163452481e38"}, - {file = "httptools-0.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:38f3cafedd6aa20ae05f81f2e616ea6f92116c8a0f8dcb79dc798df3356836e2"}, - {file = "httptools-0.6.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:cf8169e839a0d740f3d3c9c4fa630ac1a5aaf81641a34575ca6773ed7ce041a1"}, - {file = "httptools-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5dcc14c090ab57b35908d4a4585ec5c0715439df07be2913405991dbb37e049d"}, - {file = "httptools-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d0b0571806a5168013b8c3d180d9f9d6997365a4212cb18ea20df18b938aa0b"}, - {file = "httptools-0.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fb4a608c631f7dcbdf986f40af7a030521a10ba6bc3d36b28c1dc9e9035a3c0"}, - {file = "httptools-0.6.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:93f89975465133619aea8b1952bc6fa0e6bad22a447c6d982fc338fbb4c89649"}, - {file = "httptools-0.6.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:73e9d66a5a28b2d5d9fbd9e197a31edd02be310186db423b28e6052472dc8201"}, - {file = "httptools-0.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:22c01fcd53648162730a71c42842f73b50f989daae36534c818b3f5050b54589"}, - {file = "httptools-0.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3f96d2a351b5625a9fd9133c95744e8ca06f7a4f8f0b8231e4bbaae2c485046a"}, - {file = "httptools-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72ec7c70bd9f95ef1083d14a755f321d181f046ca685b6358676737a5fecd26a"}, - {file = "httptools-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b703d15dbe082cc23266bf5d9448e764c7cb3fcfe7cb358d79d3fd8248673ef9"}, - {file = "httptools-0.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82c723ed5982f8ead00f8e7605c53e55ffe47c47465d878305ebe0082b6a1755"}, - {file = "httptools-0.6.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b0a816bb425c116a160fbc6f34cece097fd22ece15059d68932af686520966bd"}, - {file = "httptools-0.6.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:dea66d94e5a3f68c5e9d86e0894653b87d952e624845e0b0e3ad1c733c6cc75d"}, - {file = "httptools-0.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:23b09537086a5a611fad5696fc8963d67c7e7f98cb329d38ee114d588b0b74cd"}, - {file = "httptools-0.6.0.tar.gz", hash = "sha256:9fc6e409ad38cbd68b177cd5158fc4042c796b82ca88d99ec78f07bed6c6b796"}, -] - -[[package]] -name = "httpx" -version = "0.25.0" -requires_python = ">=3.8" -summary = "The next generation HTTP client." -dependencies = [ - "certifi", - "httpcore<0.19.0,>=0.18.0", - "idna", - "sniffio", -] -files = [ - {file = "httpx-0.25.0-py3-none-any.whl", hash = "sha256:181ea7f8ba3a82578be86ef4171554dd45fec26a02556a744db029a0a27b7100"}, - {file = "httpx-0.25.0.tar.gz", hash = "sha256:47ecda285389cb32bb2691cc6e069e3ab0205956f681c5b2ad2325719751d875"}, -] - -[[package]] -name = "identify" -version = "2.5.29" -requires_python = ">=3.8" -summary = "File identification library for Python" -files = [ - {file = "identify-2.5.29-py2.py3-none-any.whl", hash = "sha256:24437fbf6f4d3fe6efd0eb9d67e24dd9106db99af5ceb27996a5f7895f24bf1b"}, - {file = "identify-2.5.29.tar.gz", hash = "sha256:d43d52b86b15918c137e3a74fff5224f60385cd0e9c38e99d07c257f02f151a5"}, -] - -[[package]] -name = "idna" -version = "3.4" -requires_python = ">=3.5" -summary = "Internationalized Domain Names in Applications (IDNA)" -files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] - -[[package]] -name = "imagesize" -version = "1.4.1" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -summary = "Getting image size from png/jpeg/jpeg2000/gif file" -files = [ - {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, - {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, -] - -[[package]] -name = "importlib-metadata" -version = "6.8.0" -requires_python = ">=3.8" -summary = "Read metadata from Python packages" -dependencies = [ - "zipp>=0.5", -] -files = [ - {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, - {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, -] - -[[package]] -name = "importlib-resources" -version = "6.0.1" -requires_python = ">=3.8" -summary = "Read resources from Python packages" -dependencies = [ - "zipp>=3.1.0; python_version < \"3.10\"", -] -files = [ - {file = "importlib_resources-6.0.1-py3-none-any.whl", hash = "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf"}, - {file = "importlib_resources-6.0.1.tar.gz", hash = "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"}, -] - -[[package]] -name = "iniconfig" -version = "2.0.0" -requires_python = ">=3.7" -summary = "brain-dead simple config-ini parsing" -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "jinja2" -version = "3.1.2" -requires_python = ">=3.7" -summary = "A very fast and expressive template engine." -dependencies = [ - "MarkupSafe>=2.0", -] -files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, -] - -[[package]] -name = "jsbeautifier" -version = "1.14.9" -summary = "JavaScript unobfuscator and beautifier." -dependencies = [ - "editorconfig>=0.12.2", - "six>=1.13.0", -] -files = [ - {file = "jsbeautifier-1.14.9.tar.gz", hash = "sha256:c738ebc36b47bd94e4ca6dd17a9004c3cc74edad582ca1d60e0e5d5945a63cb9"}, -] - -[[package]] -name = "litestar" -version = "2.0.1" -requires_python = ">=3.8,<4.0" -summary = "Litestar - A production-ready, highly performant, extensible ASGI API Framework" -dependencies = [ - "anyio>=3", - "fast-query-parsers>=1.0.2", - "httpx>=0.22", - "importlib-metadata; python_version < \"3.10\"", - "importlib-resources>=5.12.0; python_version < \"3.9\"", - "msgspec>=0.17.0", - "multidict>=6.0.2", - "polyfactory>=2.6.3", - "pyyaml", - "typing-extensions", -] -files = [ - {file = "litestar-2.0.1-py3-none-any.whl", hash = "sha256:44e4b0965769b8263680fd9495d77e3defc3afdbb09747fa8d9ec338b94f147f"}, - {file = "litestar-2.0.1.tar.gz", hash = "sha256:f47d11f7fa4a05e562655e02277aa0647da72b0c9be5ba3b3ed32f5efe38c98d"}, -] - -[[package]] -name = "litestar-sphinx-theme" -version = "0.2.0" -requires_python = ">=3.8,<4.0" -git = "https://github.com/litestar-org/litestar-sphinx-theme.git" -revision = "f2c8f5eb7011706081bd9f9eb4b5bbec21fce3e8" -summary = "A Sphinx theme for the Litestar organization" -dependencies = [ - "pydata-sphinx-theme<1.0.0,>=0.13.3", - "sphinx-design<1.0.0,>=0.3.0", -] - -[[package]] -name = "litestar" -version = "2.0.1" -extras = ["standard"] -requires_python = ">=3.8,<4.0" -summary = "Litestar - A production-ready, highly performant, extensible ASGI API Framework" -dependencies = [ - "click", - "jinja2>=3.1.2", - "jsbeautifier", - "litestar==2.0.1", - "rich-click", - "rich>=13.0.0", - "uvicorn[standard]>=0.22.0", -] -files = [ - {file = "litestar-2.0.1-py3-none-any.whl", hash = "sha256:44e4b0965769b8263680fd9495d77e3defc3afdbb09747fa8d9ec338b94f147f"}, - {file = "litestar-2.0.1.tar.gz", hash = "sha256:f47d11f7fa4a05e562655e02277aa0647da72b0c9be5ba3b3ed32f5efe38c98d"}, -] - -[[package]] -name = "livereload" -version = "2.6.3" -summary = "Python LiveReload is an awesome tool for web developers" -dependencies = [ - "six", - "tornado; python_version > \"2.7\"", -] -files = [ - {file = "livereload-2.6.3-py2.py3-none-any.whl", hash = "sha256:ad4ac6f53b2d62bb6ce1a5e6e96f1f00976a32348afedcb4b6d68df2a1d346e4"}, - {file = "livereload-2.6.3.tar.gz", hash = "sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869"}, -] - -[[package]] -name = "markdown-it-py" -version = "3.0.0" -requires_python = ">=3.8" -summary = "Python port of markdown-it. Markdown parsing, done right!" -dependencies = [ - "mdurl~=0.1", -] -files = [ - {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, - {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, -] - -[[package]] -name = "markupsafe" -version = "2.1.3" -requires_python = ">=3.7" -summary = "Safely add untrusted strings to HTML/XML markup." -files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -requires_python = ">=3.7" -summary = "Markdown URL utilities" -files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - -[[package]] -name = "msgpack" -version = "1.0.5" -summary = "MessagePack serializer" -files = [ - {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"}, - {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"}, - {file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"}, - {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"}, - {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"}, - {file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"}, - {file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"}, - {file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"}, - {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"}, - {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"}, - {file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"}, - {file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"}, - {file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"}, - {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"}, - {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"}, - {file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"}, - {file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"}, - {file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"}, - {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"}, - {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"}, - {file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"}, - {file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"}, - {file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"}, -] - -[[package]] -name = "msgspec" -version = "0.18.2" -requires_python = ">=3.8" -summary = "A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML." -files = [ - {file = "msgspec-0.18.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1535855b0db1bee4e5c79384010861de2a23391b45095785e84ec9489abc56cd"}, - {file = "msgspec-0.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ad4f4704045a0fb1b5226769d9cdc00a4a69adec2e6770064f3db73bb91bbf9"}, - {file = "msgspec-0.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abcb92ffbca77bcfbedd5b29b68629628948982aafb994658e7abfad6e15913c"}, - {file = "msgspec-0.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:358c2b908f1ed63419ccc5f185150c0caa3fc49599f4582504637cbfd5ff6242"}, - {file = "msgspec-0.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:78a593bc0db95416d633b28cff00af0465f04590d53ff1a80a33d7e2728820ad"}, - {file = "msgspec-0.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7b065995f3a41e4c8274a86e1ee84ac432969918373c777de239ef14f9537d80"}, - {file = "msgspec-0.18.2-cp310-cp310-win_amd64.whl", hash = "sha256:d127bf90f29f1211520f1baa897b10f2a9c05b8648ce7dc89dfc9ca45599be53"}, - {file = "msgspec-0.18.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3bfc55d5ca60b3aa2c2287191aa9e943c54eb0aef16d4babb92fddcc047093b1"}, - {file = "msgspec-0.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e03ff009f3a2e1fe883703f98098d12aea6b30934707b404fd994e9ea1c1bfa7"}, - {file = "msgspec-0.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade3959577bff46c7d9476962d2d7aa086b2820f3da03ee000e9be4958404829"}, - {file = "msgspec-0.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80e57102469ee0d2186c72d42fa9460981ccd4252bdb997bf04ef2af0818984f"}, - {file = "msgspec-0.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:25f7e3adaf1ca5d80455057576785069475b1d941eb877dbd0ae738cc5d1fefa"}, - {file = "msgspec-0.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b56cc7b9956daefb309447bbbb2581c84e5d5e3b89d573b1d5a25647522d2e43"}, - {file = "msgspec-0.18.2-cp311-cp311-win_amd64.whl", hash = "sha256:84cc7932f78aeec6ef014cca4bb4ecea8469bc05f13c9eacdfa27baa785e54b9"}, - {file = "msgspec-0.18.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:35420ae8afaa90498733541c0d8b2a73c70548a8a4d86da11201ed6df557e98f"}, - {file = "msgspec-0.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3f71c33efda990ecddc878ea2bb37f22e941d4264ded83e1b2309f86d335cde7"}, - {file = "msgspec-0.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccaddb764b5abe457c0eded4a252f5fbeb8b04a946b46a06a7e6ca299c35dcb1"}, - {file = "msgspec-0.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23e65efaef864bf66a4ddfae9c2200c40ce1a50411f454de1757f3651e5762cd"}, - {file = "msgspec-0.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:baaba2411003f2e7a4328b5a58eba9efeb4c5e6a27e8ffd2adaccdc8feb0a805"}, - {file = "msgspec-0.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eb80befd343f3b378c8abad0367154703c74bde02fc62cbcf1a0e6b5fa779459"}, - {file = "msgspec-0.18.2-cp38-cp38-win_amd64.whl", hash = "sha256:b9b3ed82f71816cddf0a9cdaae30a1d1addf8fe56ec09e7368db93ce43b29a81"}, - {file = "msgspec-0.18.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:84fcf74b6371494aa536bf438ef96b08ce8f6e40483a01ed305535a40113136b"}, - {file = "msgspec-0.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a75c4efa7565048f81e709a366e14b9dc10752b3fb5ea1f3c8de5abfca3db3c2"}, - {file = "msgspec-0.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c1ee8b9667fde3b5d7e0e0b555a8b70e2fa7bf2e02e9e8673af262c82c7b691"}, - {file = "msgspec-0.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c79ac853409b0000727f4c3e5fb32fe38122ad94b9e074f992fa9ea7f00eb498"}, - {file = "msgspec-0.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:595f14f628825d9d79eeea6e08514144a3d516eb014f0c6191f91899c83a6836"}, - {file = "msgspec-0.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b90a44550f19ee0b8c37dbca75f96473299275001af2a00273d736b7347ead6d"}, - {file = "msgspec-0.18.2-cp39-cp39-win_amd64.whl", hash = "sha256:70fa7f008008e2c823ecc1a143258bb2820ac76010cf6003091fa3832b6334c9"}, - {file = "msgspec-0.18.2.tar.gz", hash = "sha256:3996bf1fc252658a7e028a0c263d28ac4dc48476e35f6fd8ebaf461a39459825"}, -] - -[[package]] -name = "multidict" -version = "6.0.4" -requires_python = ">=3.7" -summary = "multidict implementation" -files = [ - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, - {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, - {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, - {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, - {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, - {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, - {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, - {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, - {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, - {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, -] - -[[package]] -name = "mypy" -version = "1.5.1" -requires_python = ">=3.8" -summary = "Optional static typing for Python" -dependencies = [ - "mypy-extensions>=1.0.0", - "tomli>=1.1.0; python_version < \"3.11\"", - "typing-extensions>=4.1.0", -] -files = [ - {file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"}, - {file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"}, - {file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"}, - {file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"}, - {file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"}, - {file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"}, - {file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"}, - {file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"}, - {file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"}, - {file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"}, - {file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"}, - {file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"}, - {file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"}, - {file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"}, - {file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"}, - {file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"}, - {file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"}, - {file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"}, - {file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"}, - {file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"}, - {file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"}, - {file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"}, - {file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"}, - {file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"}, - {file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"}, - {file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"}, - {file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"}, -] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -requires_python = ">=3.5" -summary = "Type system extensions for programs checked with the mypy type checker." -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - -[[package]] -name = "natsort" -version = "8.4.0" -requires_python = ">=3.7" -summary = "Simple yet flexible natural sorting in Python." -files = [ - {file = "natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c"}, - {file = "natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581"}, -] - -[[package]] -name = "nodeenv" -version = "1.8.0" -requires_python = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" -summary = "Node.js virtual environment builder" -dependencies = [ - "setuptools", -] -files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, -] - -[[package]] -name = "packaging" -version = "23.1" -requires_python = ">=3.7" -summary = "Core utilities for Python packages" -files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, -] - -[[package]] -name = "pathspec" -version = "0.11.2" -requires_python = ">=3.7" -summary = "Utility library for gitignore style pattern matching of file paths." -files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, -] - -[[package]] -name = "platformdirs" -version = "3.10.0" -requires_python = ">=3.7" -summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, -] - -[[package]] -name = "pluggy" -version = "1.3.0" -requires_python = ">=3.8" -summary = "plugin and hook calling mechanisms for python" -files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, -] - -[[package]] -name = "polyfactory" -version = "2.8.2" -requires_python = ">=3.8,<4.0" -summary = "Mock data generation factories" -dependencies = [ - "faker", - "typing-extensions", -] -files = [ - {file = "polyfactory-2.8.2-py3-none-any.whl", hash = "sha256:82f0a7662eedb713260508a82587a4e37dc290a22e8715862d806a6a40c74388"}, - {file = "polyfactory-2.8.2.tar.gz", hash = "sha256:1f2571b143172f22f9ad1f85dec8b79e83a0620ea5844f1a1f67d275df6cc465"}, -] - -[[package]] -name = "pre-commit" -version = "3.4.0" -requires_python = ">=3.8" -summary = "A framework for managing and maintaining multi-language pre-commit hooks." -dependencies = [ - "cfgv>=2.0.0", - "identify>=1.0.0", - "nodeenv>=0.11.1", - "pyyaml>=5.1", - "virtualenv>=20.10.0", -] -files = [ - {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, - {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, -] - -[[package]] -name = "pydata-sphinx-theme" -version = "0.14.0" -requires_python = ">=3.8" -summary = "Bootstrap-based Sphinx theme from the PyData community" -dependencies = [ - "Babel", - "accessible-pygments", - "beautifulsoup4", - "docutils!=0.17.0", - "packaging", - "pygments>=2.7", - "sphinx>=5.0", - "typing-extensions", -] -files = [ - {file = "pydata_sphinx_theme-0.14.0-py3-none-any.whl", hash = "sha256:bdf7d275914e7675628ca2bf6eb3a21d0efa0e6b99a3a5421832594076754c33"}, - {file = "pydata_sphinx_theme-0.14.0.tar.gz", hash = "sha256:17e9cac164840c1290607f67fe71fc1fa6edfdffd014538f39e7e298c18488cf"}, -] - -[[package]] -name = "pygments" -version = "2.16.1" -requires_python = ">=3.7" -summary = "Pygments is a syntax highlighting package written in Python." -files = [ - {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, - {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, -] - -[[package]] -name = "pyright" -version = "1.1.327" -requires_python = ">=3.7" -summary = "Command line wrapper for pyright" -dependencies = [ - "nodeenv>=1.6.0", -] -files = [ - {file = "pyright-1.1.327-py3-none-any.whl", hash = "sha256:3462cda239e9140276238bbdbd0b59d77406f1c2e14d8cb8c20c8e25639c6b3c"}, - {file = "pyright-1.1.327.tar.gz", hash = "sha256:ba74148ad64f22020dbbed6781c4bdb38ecb8a7ca90dc3c87a4f08d1c0e11592"}, -] - -[[package]] -name = "pytest" -version = "7.4.2" -requires_python = ">=3.7" -summary = "pytest: simple powerful testing with Python" -dependencies = [ - "colorama; sys_platform == \"win32\"", - "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", - "iniconfig", - "packaging", - "pluggy<2.0,>=0.12", - "tomli>=1.0.0; python_version < \"3.11\"", -] -files = [ - {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, - {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, -] - -[[package]] -name = "pytest-asyncio" -version = "0.21.1" -requires_python = ">=3.7" -summary = "Pytest support for asyncio" -dependencies = [ - "pytest>=7.0.0", -] -files = [ - {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"}, - {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"}, -] - -[[package]] -name = "pytest-cov" -version = "4.1.0" -requires_python = ">=3.7" -summary = "Pytest plugin for measuring coverage." -dependencies = [ - "coverage[toml]>=5.2.1", - "pytest>=4.6", -] -files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, -] - -[[package]] -name = "python-dateutil" -version = "2.8.2" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -summary = "Extensions to the standard Python datetime module" -dependencies = [ - "six>=1.5", -] -files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, -] - -[[package]] -name = "python-dotenv" -version = "1.0.0" -requires_python = ">=3.8" -summary = "Read key-value pairs from a .env file and set them as environment variables" -files = [ - {file = "python-dotenv-1.0.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"}, - {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"}, -] - -[[package]] -name = "pytz" -version = "2023.3.post1" -summary = "World timezone definitions, modern and historical" -files = [ - {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, - {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -requires_python = ">=3.6" -summary = "YAML parser and emitter for Python" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "requests" -version = "2.31.0" -requires_python = ">=3.7" -summary = "Python HTTP for Humans." -dependencies = [ - "certifi>=2017.4.17", - "charset-normalizer<4,>=2", - "idna<4,>=2.5", - "urllib3<3,>=1.21.1", -] -files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, -] - -[[package]] -name = "rich" -version = "13.5.2" -requires_python = ">=3.7.0" -summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -dependencies = [ - "markdown-it-py>=2.2.0", - "pygments<3.0.0,>=2.13.0", - "typing-extensions<5.0,>=4.0.0; python_version < \"3.9\"", -] -files = [ - {file = "rich-13.5.2-py3-none-any.whl", hash = "sha256:146a90b3b6b47cac4a73c12866a499e9817426423f57c5a66949c086191a8808"}, - {file = "rich-13.5.2.tar.gz", hash = "sha256:fb9d6c0a0f643c99eed3875b5377a184132ba9be4d61516a55273d3554d75a39"}, -] - -[[package]] -name = "rich-click" -version = "1.6.1" -requires_python = ">=3.7" -summary = "Format click help output nicely with rich" -dependencies = [ - "click>=7", - "rich>=10.7.0", -] -files = [ - {file = "rich-click-1.6.1.tar.gz", hash = "sha256:f8ff96693ec6e261d1544e9f7d9a5811c5ef5d74c8adb4978430fc0dac16777e"}, - {file = "rich_click-1.6.1-py3-none-any.whl", hash = "sha256:0fcf4d1a09029d79322dd814ab0b2e66ac183633037561881d45abae8a161d95"}, -] - -[[package]] -name = "ruamel-yaml" -version = "0.17.32" -requires_python = ">=3" -summary = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" -dependencies = [ - "ruamel-yaml-clib>=0.2.7; platform_python_implementation == \"CPython\" and python_version < \"3.12\"", -] -files = [ - {file = "ruamel.yaml-0.17.32-py3-none-any.whl", hash = "sha256:23cd2ed620231677564646b0c6a89d138b6822a0d78656df7abda5879ec4f447"}, - {file = "ruamel.yaml-0.17.32.tar.gz", hash = "sha256:ec939063761914e14542972a5cba6d33c23b0859ab6342f61cf070cfc600efc2"}, -] - -[[package]] -name = "ruamel-yaml-clib" -version = "0.2.7" -requires_python = ">=3.5" -summary = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" -files = [ - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, - {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:1a6391a7cabb7641c32517539ca42cf84b87b667bad38b78d4d42dd23e957c81"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9c7617df90c1365638916b98cdd9be833d31d337dbcd722485597b43c4a215bf"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:41d0f1fa4c6830176eef5b276af04c89320ea616655d01327d5ce65e50575c94"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win32.whl", hash = "sha256:f6d3d39611ac2e4f62c3128a9eed45f19a6608670c5a2f4f07f24e8de3441d38"}, - {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:da538167284de58a52109a9b89b8f6a53ff8437dd6dc26d33b57bf6699153122"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, - {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, - {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, - {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, -] - -[[package]] -name = "ruff" -version = "0.0.290" -requires_python = ">=3.7" -summary = "An extremely fast Python linter, written in Rust." -files = [ - {file = "ruff-0.0.290-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:0e2b09ac4213b11a3520221083866a5816616f3ae9da123037b8ab275066fbac"}, - {file = "ruff-0.0.290-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:4ca6285aa77b3d966be32c9a3cd531655b3d4a0171e1f9bf26d66d0372186767"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35e3550d1d9f2157b0fcc77670f7bb59154f223bff281766e61bdd1dd854e0c5"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d748c8bd97874f5751aed73e8dde379ce32d16338123d07c18b25c9a2796574a"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:982af5ec67cecd099e2ef5e238650407fb40d56304910102d054c109f390bf3c"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:bbd37352cea4ee007c48a44c9bc45a21f7ba70a57edfe46842e346651e2b995a"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d9be6351b7889462912e0b8185a260c0219c35dfd920fb490c7f256f1d8313e"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75cdc7fe32dcf33b7cec306707552dda54632ac29402775b9e212a3c16aad5e6"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb07f37f7aecdbbc91d759c0c09870ce0fb3eed4025eebedf9c4b98c69abd527"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2ab41bc0ba359d3f715fc7b705bdeef19c0461351306b70a4e247f836b9350ed"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:150bf8050214cea5b990945b66433bf9a5e0cef395c9bc0f50569e7de7540c86"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_i686.whl", hash = "sha256:75386ebc15fe5467248c039f5bf6a0cfe7bfc619ffbb8cd62406cd8811815fca"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ac93eadf07bc4ab4c48d8bb4e427bf0f58f3a9c578862eb85d99d704669f5da0"}, - {file = "ruff-0.0.290-py3-none-win32.whl", hash = "sha256:461fbd1fb9ca806d4e3d5c745a30e185f7cf3ca77293cdc17abb2f2a990ad3f7"}, - {file = "ruff-0.0.290-py3-none-win_amd64.whl", hash = "sha256:f1f49f5ec967fd5778813780b12a5650ab0ebcb9ddcca28d642c689b36920796"}, - {file = "ruff-0.0.290-py3-none-win_arm64.whl", hash = "sha256:ae5a92dfbdf1f0c689433c223f8dac0782c2b2584bd502dfdbc76475669f1ba1"}, - {file = "ruff-0.0.290.tar.gz", hash = "sha256:949fecbc5467bb11b8db810a7fa53c7e02633856ee6bd1302b2f43adcd71b88d"}, -] - -[[package]] -name = "setuptools" -version = "68.2.2" -requires_python = ">=3.8" -summary = "Easily download, build, install, upgrade, and uninstall Python packages" -files = [ - {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, - {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, -] - -[[package]] -name = "shellcheck-py" -version = "0.9.0.5" -requires_python = ">=3.7" -summary = "Python wrapper around invoking shellcheck (https://www.shellcheck.net/)" -files = [ - {file = "shellcheck_py-0.9.0.5-py2.py3-none-macosx_10_15_x86_64.whl", hash = "sha256:98d9668f72afeb65c7a8e60f02202b00d64f2de9e9b103dfb5d0067ded391ef3"}, - {file = "shellcheck_py-0.9.0.5-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65ddc19a1ae4249802a663682834ed452f9e75615d58c3ce6b3f1b0d2a484f32"}, - {file = "shellcheck_py-0.9.0.5-py2.py3-none-win_amd64.whl", hash = "sha256:9f50a7354f355753f365668e79aa3d410cb6f4d9358e4c5d8464018cf2b4863a"}, - {file = "shellcheck_py-0.9.0.5.tar.gz", hash = "sha256:50b2057fac7227fd83614a9bf9d123042e53e03d92f2c7f1778448a8937f07a4"}, -] - -[[package]] -name = "six" -version = "1.16.0" -requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -summary = "Python 2 and 3 compatibility utilities" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "sniffio" -version = "1.3.0" -requires_python = ">=3.7" -summary = "Sniff out which async library your code is running under" -files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, -] - -[[package]] -name = "snowballstemmer" -version = "2.2.0" -summary = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." -files = [ - {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, - {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, -] - -[[package]] -name = "soupsieve" -version = "2.5" -requires_python = ">=3.8" -summary = "A modern CSS selector implementation for Beautiful Soup." -files = [ - {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, - {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, -] - -[[package]] -name = "sourcery" -version = "1.9.0" -summary = "Magically refactor Python" -files = [ - {file = "sourcery-1.9.0-py2.py3-none-macosx_10_9_universal2.whl", hash = "sha256:9353d9412462f9ab8b34525025b8eeb20d0999475c61c301190e491b03ff1642"}, - {file = "sourcery-1.9.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:ca851e0117d4e01058170b580c78ba890de63d05954b5e072577f1a70fd7431d"}, - {file = "sourcery-1.9.0-py2.py3-none-win_amd64.whl", hash = "sha256:46483b99d7ffd9afa41310457a71bee5d3b9a8ca7aad2cc5eb7a12b9634a6956"}, -] - -[[package]] -name = "sphinx" -version = "7.1.2" -requires_python = ">=3.8" -summary = "Python documentation generator" -dependencies = [ - "Jinja2>=3.0", - "Pygments>=2.13", - "alabaster<0.8,>=0.7", - "babel>=2.9", - "colorama>=0.4.5; sys_platform == \"win32\"", - "docutils<0.21,>=0.18.1", - "imagesize>=1.3", - "importlib-metadata>=4.8; python_version < \"3.10\"", - "packaging>=21.0", - "requests>=2.25.0", - "snowballstemmer>=2.0", - "sphinxcontrib-applehelp", - "sphinxcontrib-devhelp", - "sphinxcontrib-htmlhelp>=2.0.0", - "sphinxcontrib-jsmath", - "sphinxcontrib-qthelp", - "sphinxcontrib-serializinghtml>=1.1.5", -] -files = [ - {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, - {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, -] - -[[package]] -name = "sphinx-autobuild" -version = "2021.3.14" -requires_python = ">=3.6" -summary = "Rebuild Sphinx documentation on changes, with live-reload in the browser." -dependencies = [ - "colorama", - "livereload", - "sphinx", -] -files = [ - {file = "sphinx-autobuild-2021.3.14.tar.gz", hash = "sha256:de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05"}, - {file = "sphinx_autobuild-2021.3.14-py3-none-any.whl", hash = "sha256:8fe8cbfdb75db04475232f05187c776f46f6e9e04cacf1e49ce81bdac649ccac"}, -] - -[[package]] -name = "sphinx-autodoc-typehints" -version = "1.24.0" -requires_python = ">=3.8" -summary = "Type hints (PEP 484) support for the Sphinx autodoc extension" -dependencies = [ - "sphinx>=7.0.1", -] -files = [ - {file = "sphinx_autodoc_typehints-1.24.0-py3-none-any.whl", hash = "sha256:6a73c0c61a9144ce2ed5ef2bed99d615254e5005c1cc32002017d72d69fb70e6"}, - {file = "sphinx_autodoc_typehints-1.24.0.tar.gz", hash = "sha256:94e440066941bb237704bb880785e2d05e8ae5406c88674feefbb938ad0dc6af"}, -] - -[[package]] -name = "sphinx-copybutton" -version = "0.5.2" -requires_python = ">=3.7" -summary = "Add a copy button to each of your code cells." -dependencies = [ - "sphinx>=1.8", -] -files = [ - {file = "sphinx-copybutton-0.5.2.tar.gz", hash = "sha256:4cf17c82fb9646d1bc9ca92ac280813a3b605d8c421225fd9913154103ee1fbd"}, - {file = "sphinx_copybutton-0.5.2-py3-none-any.whl", hash = "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e"}, -] - -[[package]] -name = "sphinx-design" -version = "0.5.0" -requires_python = ">=3.8" -summary = "A sphinx extension for designing beautiful, view size responsive web components." -dependencies = [ - "sphinx<8,>=5", -] -files = [ - {file = "sphinx_design-0.5.0-py3-none-any.whl", hash = "sha256:1af1267b4cea2eedd6724614f19dcc88fe2e15aff65d06b2f6252cee9c4f4c1e"}, - {file = "sphinx_design-0.5.0.tar.gz", hash = "sha256:e8e513acea6f92d15c6de3b34e954458f245b8e761b45b63950f65373352ab00"}, -] - -[[package]] -name = "sphinx-jinja2-compat" -version = "0.2.0" -requires_python = ">=3.6" -summary = "Patches Jinja2 v3 to restore compatibility with earlier Sphinx versions." -dependencies = [ - "jinja2>=2.10", - "markupsafe>=1", -] -files = [ - {file = "sphinx_jinja2_compat-0.2.0-py3-none-any.whl", hash = "sha256:a5f3112d6873991c2cf28e37287163a0485d9c0812863b8aa4df7182722501fb"}, - {file = "sphinx_jinja2_compat-0.2.0.tar.gz", hash = "sha256:c41346d859653e202b623f4236da8936243ed734abf5984adc3bef59d6f9a946"}, -] - -[[package]] -name = "sphinx-prompt" -version = "1.5.0" -summary = "Sphinx directive to add unselectable prompt" -dependencies = [ - "Sphinx", - "pygments", -] -files = [ - {file = "sphinx_prompt-1.5.0-py3-none-any.whl", hash = "sha256:fa4e90d8088b5a996c76087d701fc7e31175f8b9dc4aab03a507e45051067162"}, -] - -[[package]] -name = "sphinx-tabs" -version = "3.4.1" -requires_python = "~=3.7" -summary = "Tabbed views for Sphinx" -dependencies = [ - "docutils~=0.18.0", - "pygments", - "sphinx", -] -files = [ - {file = "sphinx-tabs-3.4.1.tar.gz", hash = "sha256:d2a09f9e8316e400d57503f6df1c78005fdde220e5af589cc79d493159e1b832"}, - {file = "sphinx_tabs-3.4.1-py3-none-any.whl", hash = "sha256:7cea8942aeccc5d01a995789c01804b787334b55927f29b36ba16ed1e7cb27c6"}, -] - -[[package]] -name = "sphinx-toolbox" -version = "3.5.0" -requires_python = ">=3.7" -summary = "Box of handy tools for Sphinx 🧰 📔" -dependencies = [ - "apeye>=0.4.0", - "autodocsumm>=0.2.0", - "beautifulsoup4>=4.9.1", - "cachecontrol[filecache]>=0.13.0", - "dict2css>=0.2.3", - "docutils>=0.16", - "domdf-python-tools>=2.9.0", - "filelock>=3.8.0", - "html5lib>=1.1", - "ruamel-yaml>=0.16.12", - "sphinx-autodoc-typehints>=1.11.1", - "sphinx-jinja2-compat>=0.1.0", - "sphinx-prompt>=1.1.0", - "sphinx-tabs<3.5.0,>=1.2.1", - "sphinx>=3.2.0", - "tabulate>=0.8.7", - "typing-extensions!=3.10.0.1,>=3.7.4.3", -] -files = [ - {file = "sphinx_toolbox-3.5.0-py3-none-any.whl", hash = "sha256:20dfd3566717db6f2da7a400a54dc4b946f064fb31250fa44802d54cfb9b8a03"}, - {file = "sphinx_toolbox-3.5.0.tar.gz", hash = "sha256:e5b5a7153f1997572d71a06aaf6cec225483492ec2c60097a84f15aad6df18b7"}, -] - -[[package]] -name = "sphinxcontrib-applehelp" -version = "1.0.4" -requires_python = ">=3.8" -summary = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" -files = [ - {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, - {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, -] - -[[package]] -name = "sphinxcontrib-devhelp" -version = "1.0.2" -requires_python = ">=3.5" -summary = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." -files = [ - {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, - {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, -] - -[[package]] -name = "sphinxcontrib-htmlhelp" -version = "2.0.1" -requires_python = ">=3.8" -summary = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" -files = [ - {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, - {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, -] - -[[package]] -name = "sphinxcontrib-jsmath" -version = "1.0.1" -requires_python = ">=3.5" -summary = "A sphinx extension which renders display math in HTML via JavaScript" -files = [ - {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, - {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, -] - -[[package]] -name = "sphinxcontrib-mermaid" -version = "0.9.2" -requires_python = ">=3.7" -summary = "Mermaid diagrams in yours Sphinx powered docs" -files = [ - {file = "sphinxcontrib-mermaid-0.9.2.tar.gz", hash = "sha256:252ef13dd23164b28f16d8b0205cf184b9d8e2b714a302274d9f59eb708e77af"}, - {file = "sphinxcontrib_mermaid-0.9.2-py3-none-any.whl", hash = "sha256:6795a72037ca55e65663d2a2c1a043d636dc3d30d418e56dd6087d1459d98a5d"}, -] - -[[package]] -name = "sphinxcontrib-qthelp" -version = "1.0.3" -requires_python = ">=3.5" -summary = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." -files = [ - {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, - {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, -] - -[[package]] -name = "sphinxcontrib-serializinghtml" -version = "1.1.5" -requires_python = ">=3.5" -summary = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." -files = [ - {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, - {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, -] - -[[package]] -name = "tabulate" -version = "0.9.0" -requires_python = ">=3.7" -summary = "Pretty-print tabular data" -files = [ - {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, - {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, -] - -[[package]] -name = "tomli" -version = "2.0.1" -requires_python = ">=3.7" -summary = "A lil' TOML parser" -files = [ - {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, - {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, -] - -[[package]] -name = "tornado" -version = "6.3.3" -requires_python = ">= 3.8" -summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -files = [ - {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:502fba735c84450974fec147340016ad928d29f1e91f49be168c0a4c18181e1d"}, - {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:805d507b1f588320c26f7f097108eb4023bbaa984d63176d1652e184ba24270a"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd19ca6c16882e4d37368e0152f99c099bad93e0950ce55e71daed74045908f"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ac51f42808cca9b3613f51ffe2a965c8525cb1b00b7b2d56828b8045354f76a"}, - {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71a8db65160a3c55d61839b7302a9a400074c9c753040455494e2af74e2501f2"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ceb917a50cd35882b57600709dd5421a418c29ddc852da8bcdab1f0db33406b0"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:7d01abc57ea0dbb51ddfed477dfe22719d376119844e33c661d873bf9c0e4a16"}, - {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9dc4444c0defcd3929d5c1eb5706cbe1b116e762ff3e0deca8b715d14bf6ec17"}, - {file = "tornado-6.3.3-cp38-abi3-win32.whl", hash = "sha256:65ceca9500383fbdf33a98c0087cb975b2ef3bfb874cb35b8de8740cf7f41bd3"}, - {file = "tornado-6.3.3-cp38-abi3-win_amd64.whl", hash = "sha256:22d3c2fa10b5793da13c807e6fc38ff49a4f6e1e3868b0a6f4164768bb8e20f5"}, - {file = "tornado-6.3.3.tar.gz", hash = "sha256:e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe"}, -] - -[[package]] -name = "typing-extensions" -version = "4.7.1" -requires_python = ">=3.7" -summary = "Backported and Experimental Type Hints for Python 3.7+" -files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, -] - -[[package]] -name = "urllib3" -version = "2.0.4" -requires_python = ">=3.7" -summary = "HTTP library with thread-safe connection pooling, file post, and more." -files = [ - {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, - {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, -] - -[[package]] -name = "uvicorn" -version = "0.23.2" -requires_python = ">=3.8" -summary = "The lightning-fast ASGI server." -dependencies = [ - "click>=7.0", - "h11>=0.8", - "typing-extensions>=4.0; python_version < \"3.11\"", -] -files = [ - {file = "uvicorn-0.23.2-py3-none-any.whl", hash = "sha256:1f9be6558f01239d4fdf22ef8126c39cb1ad0addf76c40e760549d2c2f43ab53"}, - {file = "uvicorn-0.23.2.tar.gz", hash = "sha256:4d3cc12d7727ba72b64d12d3cc7743124074c0a69f7b201512fc50c3e3f1569a"}, -] - -[[package]] -name = "uvicorn" -version = "0.23.2" -extras = ["standard"] -requires_python = ">=3.8" -summary = "The lightning-fast ASGI server." -dependencies = [ - "colorama>=0.4; sys_platform == \"win32\"", - "httptools>=0.5.0", - "python-dotenv>=0.13", - "pyyaml>=5.1", - "uvicorn==0.23.2", - "uvloop!=0.15.0,!=0.15.1,>=0.14.0; sys_platform != \"win32\" and (sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\")", - "watchfiles>=0.13", - "websockets>=10.4", -] -files = [ - {file = "uvicorn-0.23.2-py3-none-any.whl", hash = "sha256:1f9be6558f01239d4fdf22ef8126c39cb1ad0addf76c40e760549d2c2f43ab53"}, - {file = "uvicorn-0.23.2.tar.gz", hash = "sha256:4d3cc12d7727ba72b64d12d3cc7743124074c0a69f7b201512fc50c3e3f1569a"}, -] - -[[package]] -name = "uvloop" -version = "0.17.0" -requires_python = ">=3.7" -summary = "Fast implementation of asyncio event loop on top of libuv" -files = [ - {file = "uvloop-0.17.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ce9f61938d7155f79d3cb2ffa663147d4a76d16e08f65e2c66b77bd41b356718"}, - {file = "uvloop-0.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:68532f4349fd3900b839f588972b3392ee56042e440dd5873dfbbcd2cc67617c"}, - {file = "uvloop-0.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0949caf774b9fcefc7c5756bacbbbd3fc4c05a6b7eebc7c7ad6f825b23998d6d"}, - {file = "uvloop-0.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff3d00b70ce95adce264462c930fbaecb29718ba6563db354608f37e49e09024"}, - {file = "uvloop-0.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a5abddb3558d3f0a78949c750644a67be31e47936042d4f6c888dd6f3c95f4aa"}, - {file = "uvloop-0.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8efcadc5a0003d3a6e887ccc1fb44dec25594f117a94e3127954c05cf144d811"}, - {file = "uvloop-0.17.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3378eb62c63bf336ae2070599e49089005771cc651c8769aaad72d1bd9385a7c"}, - {file = "uvloop-0.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6aafa5a78b9e62493539456f8b646f85abc7093dd997f4976bb105537cf2635e"}, - {file = "uvloop-0.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c686a47d57ca910a2572fddfe9912819880b8765e2f01dc0dd12a9bf8573e539"}, - {file = "uvloop-0.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:864e1197139d651a76c81757db5eb199db8866e13acb0dfe96e6fc5d1cf45fc4"}, - {file = "uvloop-0.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2a6149e1defac0faf505406259561bc14b034cdf1d4711a3ddcdfbaa8d825a05"}, - {file = "uvloop-0.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6708f30db9117f115eadc4f125c2a10c1a50d711461699a0cbfaa45b9a78e376"}, - {file = "uvloop-0.17.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a4aee22ece20958888eedbad20e4dbb03c37533e010fb824161b4f05e641f738"}, - {file = "uvloop-0.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:307958f9fc5c8bb01fad752d1345168c0abc5d62c1b72a4a8c6c06f042b45b20"}, - {file = "uvloop-0.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ebeeec6a6641d0adb2ea71dcfb76017602ee2bfd8213e3fcc18d8f699c5104f"}, - {file = "uvloop-0.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1436c8673c1563422213ac6907789ecb2b070f5939b9cbff9ef7113f2b531595"}, - {file = "uvloop-0.17.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8887d675a64cfc59f4ecd34382e5b4f0ef4ae1da37ed665adba0c2badf0d6578"}, - {file = "uvloop-0.17.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3db8de10ed684995a7f34a001f15b374c230f7655ae840964d51496e2f8a8474"}, - {file = "uvloop-0.17.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7d37dccc7ae63e61f7b96ee2e19c40f153ba6ce730d8ba4d3b4e9738c1dccc1b"}, - {file = "uvloop-0.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cbbe908fda687e39afd6ea2a2f14c2c3e43f2ca88e3a11964b297822358d0e6c"}, - {file = "uvloop-0.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d97672dc709fa4447ab83276f344a165075fd9f366a97b712bdd3fee05efae8"}, - {file = "uvloop-0.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1e507c9ee39c61bfddd79714e4f85900656db1aec4d40c6de55648e85c2799c"}, - {file = "uvloop-0.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c092a2c1e736086d59ac8e41f9c98f26bbf9b9222a76f21af9dfe949b99b2eb9"}, - {file = "uvloop-0.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:30babd84706115626ea78ea5dbc7dd8d0d01a2e9f9b306d24ca4ed5796c66ded"}, - {file = "uvloop-0.17.0.tar.gz", hash = "sha256:0ddf6baf9cf11a1a22c71487f39f15b2cf78eb5bde7e5b45fbb99e8a9d91b9e1"}, -] - -[[package]] -name = "virtualenv" -version = "20.24.5" -requires_python = ">=3.7" -summary = "Virtual Python Environment builder" -dependencies = [ - "distlib<1,>=0.3.7", - "filelock<4,>=3.12.2", - "platformdirs<4,>=3.9.1", -] -files = [ - {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, - {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, -] - -[[package]] -name = "watchfiles" -version = "0.20.0" -requires_python = ">=3.7" -summary = "Simple, modern and high performance file watching and code reload in python." -dependencies = [ - "anyio>=3.0.0", -] -files = [ - {file = "watchfiles-0.20.0-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:3796312bd3587e14926013612b23066912cf45a14af71cf2b20db1c12dadf4e9"}, - {file = "watchfiles-0.20.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:d0002d81c89a662b595645fb684a371b98ff90a9c7d8f8630c82f0fde8310458"}, - {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:570848706440373b4cd8017f3e850ae17f76dbdf1e9045fc79023b11e1afe490"}, - {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a0351d20d03c6f7ad6b2e8a226a5efafb924c7755ee1e34f04c77c3682417fa"}, - {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:007dcc4a401093010b389c044e81172c8a2520dba257c88f8828b3d460c6bb38"}, - {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d82dbc1832da83e441d112069833eedd4cf583d983fb8dd666fbefbea9d99c0"}, - {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99f4c65fd2fce61a571b2a6fcf747d6868db0bef8a934e8ca235cc8533944d95"}, - {file = "watchfiles-0.20.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5392dd327a05f538c56edb1c6ebba6af91afc81b40822452342f6da54907bbdf"}, - {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:08dc702529bb06a2b23859110c214db245455532da5eaea602921687cfcd23db"}, - {file = "watchfiles-0.20.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7d4e66a857621584869cfbad87039e65dadd7119f0d9bb9dbc957e089e32c164"}, - {file = "watchfiles-0.20.0-cp37-abi3-win32.whl", hash = "sha256:a03d1e6feb7966b417f43c3e3783188167fd69c2063e86bad31e62c4ea794cc5"}, - {file = "watchfiles-0.20.0-cp37-abi3-win_amd64.whl", hash = "sha256:eccc8942bcdc7d638a01435d915b913255bbd66f018f1af051cd8afddb339ea3"}, - {file = "watchfiles-0.20.0-cp37-abi3-win_arm64.whl", hash = "sha256:b17d4176c49d207865630da5b59a91779468dd3e08692fe943064da260de2c7c"}, - {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d97db179f7566dcf145c5179ddb2ae2a4450e3a634eb864b09ea04e68c252e8e"}, - {file = "watchfiles-0.20.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:835df2da7a5df5464c4a23b2d963e1a9d35afa422c83bf4ff4380b3114603644"}, - {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:608cd94a8767f49521901aff9ae0c92cc8f5a24d528db7d6b0295290f9d41193"}, - {file = "watchfiles-0.20.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d1de8218874925bce7bb2ae9657efc504411528930d7a83f98b1749864f2ef"}, - {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:13f995d5152a8ba4ed7c2bbbaeee4e11a5944defc7cacd0ccb4dcbdcfd78029a"}, - {file = "watchfiles-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b5c8d3be7b502f8c43a33c63166ada8828dbb0c6d49c8f9ce990a96de2f5a49"}, - {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e43af4464daa08723c04b43cf978ab86cc55c684c16172622bdac64b34e36af0"}, - {file = "watchfiles-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d9e1f75c4f86c93d73b5bd1ebe667558357548f11b4f8af4e0e272f79413ce"}, - {file = "watchfiles-0.20.0.tar.gz", hash = "sha256:728575b6b94c90dd531514677201e8851708e6e4b5fe7028ac506a200b622019"}, -] - -[[package]] -name = "webencodings" -version = "0.5.1" -summary = "Character encoding aliases for legacy web content" -files = [ - {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, - {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, -] - -[[package]] -name = "websockets" -version = "11.0.3" -requires_python = ">=3.7" -summary = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" -files = [ - {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3ccc8a0c387629aec40f2fc9fdcb4b9d5431954f934da3eaf16cdc94f67dbfac"}, - {file = "websockets-11.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d67ac60a307f760c6e65dad586f556dde58e683fab03323221a4e530ead6f74d"}, - {file = "websockets-11.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d27a4832cc1a0ee07cdcf2b0629a8a72db73f4cf6de6f0904f6661227f256f"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffd7dcaf744f25f82190856bc26ed81721508fc5cbf2a330751e135ff1283564"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7622a89d696fc87af8e8d280d9b421db5133ef5b29d3f7a1ce9f1a7bf7fcfa11"}, - {file = "websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bceab846bac555aff6427d060f2fcfff71042dba6f5fca7dc4f75cac815e57ca"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:54c6e5b3d3a8936a4ab6870d46bdd6ec500ad62bde9e44462c32d18f1e9a8e54"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:41f696ba95cd92dc047e46b41b26dd24518384749ed0d99bea0a941ca87404c4"}, - {file = "websockets-11.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:86d2a77fd490ae3ff6fae1c6ceaecad063d3cc2320b44377efdde79880e11526"}, - {file = "websockets-11.0.3-cp310-cp310-win32.whl", hash = "sha256:2d903ad4419f5b472de90cd2d40384573b25da71e33519a67797de17ef849b69"}, - {file = "websockets-11.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:1d2256283fa4b7f4c7d7d3e84dc2ece74d341bce57d5b9bf385df109c2a1a82f"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e848f46a58b9fcf3d06061d17be388caf70ea5b8cc3466251963c8345e13f7eb"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa5003845cdd21ac0dc6c9bf661c5beddd01116f6eb9eb3c8e272353d45b3288"}, - {file = "websockets-11.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b58cbf0697721120866820b89f93659abc31c1e876bf20d0b3d03cef14faf84d"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:660e2d9068d2bedc0912af508f30bbeb505bbbf9774d98def45f68278cea20d3"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c1f0524f203e3bd35149f12157438f406eff2e4fb30f71221c8a5eceb3617b6b"}, - {file = "websockets-11.0.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:def07915168ac8f7853812cc593c71185a16216e9e4fa886358a17ed0fd9fcf6"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b30c6590146e53149f04e85a6e4fcae068df4289e31e4aee1fdf56a0dead8f97"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:619d9f06372b3a42bc29d0cd0354c9bb9fb39c2cbc1a9c5025b4538738dbffaf"}, - {file = "websockets-11.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:01f5567d9cf6f502d655151645d4e8b72b453413d3819d2b6f1185abc23e82dd"}, - {file = "websockets-11.0.3-cp311-cp311-win32.whl", hash = "sha256:e1459677e5d12be8bbc7584c35b992eea142911a6236a3278b9b5ce3326f282c"}, - {file = "websockets-11.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:e7837cb169eca3b3ae94cc5787c4fed99eef74c0ab9506756eea335e0d6f3ed8"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fb06eea71a00a7af0ae6aefbb932fb8a7df3cb390cc217d51a9ad7343de1b8d0"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8a34e13a62a59c871064dfd8ffb150867e54291e46d4a7cf11d02c94a5275bae"}, - {file = "websockets-11.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4841ed00f1026dfbced6fca7d963c4e7043aa832648671b5138008dc5a8f6d99"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a073fc9ab1c8aff37c99f11f1641e16da517770e31a37265d2755282a5d28aa"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68b977f21ce443d6d378dbd5ca38621755f2063d6fdb3335bda981d552cfff86"}, - {file = "websockets-11.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1a99a7a71631f0efe727c10edfba09ea6bee4166a6f9c19aafb6c0b5917d09c"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bee9fcb41db2a23bed96c6b6ead6489702c12334ea20a297aa095ce6d31370d0"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4b253869ea05a5a073ebfdcb5cb3b0266a57c3764cf6fe114e4cd90f4bfa5f5e"}, - {file = "websockets-11.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1553cb82942b2a74dd9b15a018dce645d4e68674de2ca31ff13ebc2d9f283788"}, - {file = "websockets-11.0.3-cp38-cp38-win32.whl", hash = "sha256:f61bdb1df43dc9c131791fbc2355535f9024b9a04398d3bd0684fc16ab07df74"}, - {file = "websockets-11.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:03aae4edc0b1c68498f41a6772d80ac7c1e33c06c6ffa2ac1c27a07653e79d6f"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:777354ee16f02f643a4c7f2b3eff8027a33c9861edc691a2003531f5da4f6bc8"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8c82f11964f010053e13daafdc7154ce7385ecc538989a354ccc7067fd7028fd"}, - {file = "websockets-11.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3580dd9c1ad0701169e4d6fc41e878ffe05e6bdcaf3c412f9d559389d0c9e016"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f1a3f10f836fab6ca6efa97bb952300b20ae56b409414ca85bff2ad241d2a61"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:df41b9bc27c2c25b486bae7cf42fccdc52ff181c8c387bfd026624a491c2671b"}, - {file = "websockets-11.0.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:279e5de4671e79a9ac877427f4ac4ce93751b8823f276b681d04b2156713b9dd"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1fdf26fa8a6a592f8f9235285b8affa72748dc12e964a5518c6c5e8f916716f7"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:69269f3a0b472e91125b503d3c0b3566bda26da0a3261c49f0027eb6075086d1"}, - {file = "websockets-11.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:97b52894d948d2f6ea480171a27122d77af14ced35f62e5c892ca2fae9344311"}, - {file = "websockets-11.0.3-cp39-cp39-win32.whl", hash = "sha256:c7f3cb904cce8e1be667c7e6fef4516b98d1a6a0635a58a57528d577ac18a128"}, - {file = "websockets-11.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c792ea4eabc0159535608fc5658a74d1a81020eb35195dd63214dcf07556f67e"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e58f2c36cc52d41f2659e4c0cbf7353e28c8c9e63e30d8c6d3494dc9fdedcf"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de36fe9c02995c7e6ae6efe2e205816f5f00c22fd1fbf343d4d18c3d5ceac2f5"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ac56b661e60edd453585f4bd68eb6a29ae25b5184fd5ba51e97652580458998"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e052b8467dd07d4943936009f46ae5ce7b908ddcac3fda581656b1b19c083d9b"}, - {file = "websockets-11.0.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:42cc5452a54a8e46a032521d7365da775823e21bfba2895fb7b77633cce031bb"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e6316827e3e79b7b8e7d8e3b08f4e331af91a48e794d5d8b099928b6f0b85f20"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8531fdcad636d82c517b26a448dcfe62f720e1922b33c81ce695d0edb91eb931"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c114e8da9b475739dde229fd3bc6b05a6537a88a578358bc8eb29b4030fac9c9"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e063b1865974611313a3849d43f2c3f5368093691349cf3c7c8f8f75ad7cb280"}, - {file = "websockets-11.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:92b2065d642bf8c0a82d59e59053dd2fdde64d4ed44efe4870fa816c1232647b"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0ee68fe502f9031f19d495dae2c268830df2760c0524cbac5d759921ba8c8e82"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcacf2c7a6c3a84e720d1bb2b543c675bf6c40e460300b628bab1b1efc7c034c"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b67c6f5e5a401fc56394f191f00f9b3811fe843ee93f4a70df3c389d1adf857d"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d5023a4b6a5b183dc838808087033ec5df77580485fc533e7dab2567851b0a4"}, - {file = "websockets-11.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ed058398f55163a79bb9f06a90ef9ccc063b204bb346c4de78efc5d15abfe602"}, - {file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6"}, - {file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"}, -] - -[[package]] -name = "zipp" -version = "3.16.2" -requires_python = ">=3.8" -summary = "Backport of pathlib-compatible object wrapper for zip files" -files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, -] diff --git a/pyproject.toml b/pyproject.toml index 86109a7..ef782a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,21 +3,23 @@ authors = [ {name = "Cody Fincher", email = "cody.fincher@gmail.com"}, {name = "Janek Nouvertné", email = "provinzkraut@posteo.de"}, {name = "Jacob Coffee", email = "jacob@z7x.org"}, + {name = "Peter Schutt", email = "peter.github@proton.me"}, ] maintainers = [ {name = "Cody Fincher", email = "cody.fincher@gmail.com"}, {name = "Janek Nouvertné", email = "provinzkraut@posteo.de"}, {name = "Jacob Coffee", email = "jacob@z7x.org"}, + {name = "Peter Schutt", email = "peter.github@proton.me"}, ] keywords = [ "api", "rest", "asgi", "litestar", - "starlite", + "project-template", ] classifiers = [ - "Development Status :: 5 - Production/Stable", + "Development Status :: 3 - Alpha", "Environment :: Web Environment", "License :: OSI Approved :: MIT License", "Natural Language :: English", @@ -29,9 +31,9 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", - "Topic :: Software Development :: Libraries", "Topic :: Software Development", "Typing :: Typed", + "Intended Audience :: Developers", ] name = "project-template" version = "0.1.0" @@ -39,49 +41,36 @@ description = "project-template is a Python template project designed to simplif readme = "README.md" license = {text = "MIT"} requires-python = ">=3.8,<4.0" -dependencies = [ - "litestar[standard]", -] [project.urls] -"Issue Tracker" = "https://github.com/litestar-org/project-template/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc" -Changelog = "https://github.com/litestar-org/project-template/releases/" -Twitter = "https://twitter.com/LitestarAPI" -Reddit = "https://www.reddit.com/r/litestarapi" -Discord = "https://discord.gg/MmcwxztmQb" -Blog = "https://blog.litestar.dev" -homepage = "https://litestar.dev/" -repository = "https://github.com/litestar-org/project-template" -documentation = "https://docs.litestar.dev/" +"Issue Tracker" = "https://github.com/jolt-org/project-template/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc" +Changelog = "https://github.com/jolt-org/project-template/releases/" +Discord = "https://discord.gg/XpFNTjjtTK" +Blog = "https://blog.jolt.rs" +homepage = "https://jolt.rs/" +repository = "https://github.com/jolt-org/project-template" +documentation = "https://docs.project-template.jolt.rs/" [build-system] build-backend = "hatchling.build" requires = ["hatchling"] -[project.scripts] -app = "litestar.__main__:run_cli" - - [tool.pdm.scripts] lint = "pre-commit run --all-files" test = "pytest" -docs-serve = "sphinx-autobuild docs docs/_build/ -j auto --watch src --watch docs --watch tests --port 8002" +docs-serve = "sphinx-autobuild docs docs/_build/ -j auto --watch project-template --watch docs --watch tests --port 8002" ci = {composite = ["lint", "test"]} [tool.pdm.dev-dependencies] docs = [ - "sphinx>=7.1.2", - "sphinx-autobuild>=2021.3.14", - "black>=23.9.1", - "httpx>=0.25.0", - "auto-pytabs[sphinx]>=0.4.0", - "sphinx-copybutton>=0.5.2", - "sphinx-toolbox>=3.5.0", - "blacken-docs>=1.16.0", - "sphinx-design>=0.5.0", - "sphinxcontrib-mermaid>=0.9.2", - "uvicorn>=0.23.2", - "litestar-sphinx-theme @ git+https://github.com/litestar-org/litestar-sphinx-theme.git", + "sphinx>=7.1.2", + "sphinx-autobuild>=2021.3.14", + "sphinx-copybutton>=0.5.2", + "shibuya>=2023.9.3", + "sphinx-click>=5.0.1", + "sphinx-toolbox>=3.5.0", + "blacken-docs>=1.16.0", + "sphinx-design>=0.5.0", ] lint = [ "black>=23.9.1", @@ -178,7 +167,7 @@ classmethod-decorators = [ ] [tool.ruff.isort] -known-first-party = ["litestar", "tests", "examples"] +known-first-party = ["project-template", "tests", "examples"] [tool.ruff.per-file-ignores] "tests/**/*.*" = [ diff --git a/sonar-project.properties b/sonar-project.properties index 7941f6a..053709e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,7 +1,7 @@ -sonar.projectKey=litestar-org_project-template -sonar.organization=litestar-api +sonar.projectKey=jolt-org_project-template +sonar.organization=jolt_org sonar.python.coverage.reportPaths=coverage.xml sonar.test.inclusions=tests/test_*.py -sonar.sources=src +sonar.sources=project-template sonar.sourceEncoding=UTF-8 sonar.python.version=3.8, 3.9, 3.10, 3.11 diff --git a/src/__metadata__.py b/src/__metadata__.py new file mode 100644 index 0000000..7ae2192 --- /dev/null +++ b/src/__metadata__.py @@ -0,0 +1,11 @@ +"""Metadata for the Project.""" +from __future__ import annotations + +import importlib.metadata + +__all__ = ["__version__", "__project__"] + +__version__ = importlib.metadata.version("project-template") +"""Version of the project.""" +__project__ = importlib.metadata.metadata("project-template")["Name"] +"""Name of the project.""" diff --git a/tools/pypi_readme.py b/tools/pypi_readme.py index d0a7a44..3d55c76 100644 --- a/tools/pypi_readme.py +++ b/tools/pypi_readme.py @@ -1,7 +1,7 @@ import re from pathlib import Path -PYPI_BANNER = '<img src="https://raw.githubusercontent.com/litestar-org/branding/473f54621e55cde9acbb6fcab7fc03036173eb3d/assets/Branding%20-%20PNG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.png" alt="Litestar Logo - Light" width="100%" height="auto" />' +PYPI_BANNER = '<img src="https://raw.githubusercontent.com/jolt-org/branding/473f54621e55cde9acbb6fcab7fc03036173eb3d/assets/Branding%20-%20PNG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.png" alt="Litestar Logo - Light" width="100%" height="auto" />' def generate_pypi_readme() -> None: diff --git a/tools/sphinx_ext/changelog.py b/tools/sphinx_ext/changelog.py index 39c55e6..e4fc9ea 100644 --- a/tools/sphinx_ext/changelog.py +++ b/tools/sphinx_ext/changelog.py @@ -11,7 +11,7 @@ if TYPE_CHECKING: from sphinx.application import Sphinx -_GH_BASE_URL = "https://github.com/litestar-org/litestar" +_GH_BASE_URL = "https://github.com/jolt-org/litestar" def _parse_gh_reference(raw: str, type_: Literal["issues", "pull"]) -> list[str]: From 4145639fe156d03c0beed5a9a46e64d3ebc1a2ae Mon Sep 17 00:00:00 2001 From: Jacob Coffee <jcoffee5@oreillyauto.com> Date: Tue, 19 Sep 2023 22:32:48 -0500 Subject: [PATCH 3/6] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5208b2c..1b7496a 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ any project that is a part of the Jolt organization. > [!IMPORTANT]\ > > - [Create a new repository][newrepo] using this template repository. -> - Run the [new_project.py][tools/new_project.py] script to initialize the project and set the project name. -> - Update the [README.md][README.md] file with the project-specific information. +> - Run the [new_project.py](tools/new_project.py) script to initialize the project and set the project name. +> - Update the [README.md](README.md) file with the project-specific information. > - (Optional if not using docs) Create the `$project-name-docs-preview` repository. > - If the project does not utilize docs, remove the `.github/workflows/docs-preview.yaml`. > - Remove any template-specific sections from the repos From 4110db72c75561da25a5c2156293b31833796027 Mon Sep 17 00:00:00 2001 From: Peter Schutt <peter.github@proton.me> Date: Thu, 21 Sep 2023 00:09:56 +1000 Subject: [PATCH 4/6] chore: template fixes (#1) --- .github/workflows/ci.yaml | 8 +- .pre-commit-config.yaml | 21 +- docs/PYPI_README.md | 4 +- docs/conf.py | 27 +- pdm.lock | 1434 +++++++++++++++++++++ {src => project_template}/__init__.py | 0 {src => project_template}/__metadata__.py | 0 pyproject.toml | 9 +- tests/test_src.py | 2 +- tools/sphinx_ext/__init__.py | 3 +- tools/sphinx_ext/run_examples.py | 188 --- 11 files changed, 1448 insertions(+), 248 deletions(-) create mode 100644 pdm.lock rename {src => project_template}/__init__.py (100%) rename {src => project_template}/__metadata__.py (100%) delete mode 100644 tools/sphinx_ext/run_examples.py diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bc7a145..97d7955 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -43,9 +43,6 @@ jobs: - name: Check out repository uses: actions/checkout@v4 - - name: Install Microsoft ODBC Drivers - run: sudo ACCEPT_EULA=Y apt-get install msodbcsql18 -y - - uses: pdm-project/setup-pdm@v3 name: Set up PDM with: @@ -57,7 +54,7 @@ jobs: run: pdm install - name: Test - run: pdm run pytest -m "" -n auto + run: pdm run pytest -m "" build-docs: needs: @@ -68,9 +65,6 @@ jobs: - name: Check out repository uses: actions/checkout@v4 - - name: Install Microsoft ODBC - run: sudo ACCEPT_EULA=Y apt-get install msodbcsql18 -y - - name: Set up Python uses: actions/setup-python@v4 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f793fe9..278c3a8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -59,25 +59,8 @@ repos: rev: "v1.5.1" hooks: - id: mypy - exclude: "test_apps|tools|docs|tests/examples|" - additional_dependencies: - [ - annotated_types, - hypothesis, - polyfactory, - pydantic-extra-types, - pydantic>=2, - pytest, - pytest-lazy-fixture, - pytest-mock, - pytest-timeout, - pytest_docker, - redis, - rich, - rich-click, - click, - uvicorn, - ] + exclude: "tools|docs" + additional_dependencies: [pytest] - repo: https://github.com/sphinx-contrib/sphinx-lint rev: "v0.6.8" hooks: diff --git a/docs/PYPI_README.md b/docs/PYPI_README.md index 252d7d6..597c581 100644 --- a/docs/PYPI_README.md +++ b/docs/PYPI_README.md @@ -21,8 +21,8 @@ any project that is a part of the Jolt organization. > [!IMPORTANT]\ > > - [Create a new repository][newrepo] using this template repository. -> - Run the [new_project.py][tools/new_project.py] script to initialize the project and set the project name. -> - Update the [README.md][README.md] file with the project-specific information. +> - Run the [new_project.py](tools/new_project.py) script to initialize the project and set the project name. +> - Update the [README.md](README.md) file with the project-specific information. > - (Optional if not using docs) Create the `$project-name-docs-preview` repository. > - If the project does not utilize docs, remove the `.github/workflows/docs-preview.yaml`. > - Remove any template-specific sections from the repos diff --git a/docs/conf.py b/docs/conf.py index 345e32c..abbfe05 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,16 +1,14 @@ # Configuration file for the Sphinx documentation builder. import os -from project-template.__metadata__ import __project__ as project -from project-template.__metadata__ import __version__ as version +from project_template.__metadata__ import __project__ as project +from project_template.__metadata__ import __version__ as version # -- Environmental Data ------------------------------------------------------ # -- Project information ----------------------------------------------------- -project = project author = "Jolt Org" -release = version release = os.getenv("_PROJECT-TEMPLATE_DOCS_BUILD_VERSION", version.rsplit(".")[0]) copyright = "2023, Jolt Org" @@ -41,25 +39,8 @@ PY_OBJ = "py:obj" nitpicky = True -nitpick_ignore = [ - # external library / undocumented external - (PY_CLASS, "ExternalType"), - (PY_CLASS, "TypeEngine"), - (PY_CLASS, "UserDefinedType"), - (PY_CLASS, "_types.TypeDecorator"), - (PY_METH, "_types.TypeDecorator.process_bind_param"), - (PY_METH, "_types.TypeDecorator.process_result_value"), - (PY_METH, "type_engine"), - # type vars and aliases / intentionally undocumented - (PY_CLASS, "CollectionT"), - (PY_CLASS, "EmptyType"), - (PY_CLASS, "ModelT"), - (PY_CLASS, "T"), - (PY_CLASS, "AsyncSession"), - (PY_CLASS, "Select"), -] -nitpick_ignore_regex = [ -] +nitpick_ignore = [] +nitpick_ignore_regex = [] napoleon_google_docstring = True napoleon_include_special_with_doc = True diff --git a/pdm.lock b/pdm.lock new file mode 100644 index 0000000..6ccf0f6 --- /dev/null +++ b/pdm.lock @@ -0,0 +1,1434 @@ +# This file is @generated by PDM. +# It is not intended for manual editing. + +[metadata] +groups = ["default", "docs", "lint", "test"] +cross_platform = true +static_urls = false +lock_version = "4.3" +content_hash = "sha256:3b9dbcd1b07203d22445b4dffaf0d81bbd68900b6dbfcfb996dcb69167ec859e" + +[[package]] +name = "alabaster" +version = "0.7.13" +requires_python = ">=3.6" +summary = "A configurable sidebar-enabled Sphinx theme" +files = [ + {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, + {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, +] + +[[package]] +name = "apeye" +version = "1.4.1" +requires_python = ">=3.6.1" +summary = "Handy tools for working with URLs and APIs." +dependencies = [ + "apeye-core>=1.0.0b2", + "domdf-python-tools>=2.6.0", + "platformdirs>=2.3.0", + "requests>=2.24.0", +] +files = [ + {file = "apeye-1.4.1-py3-none-any.whl", hash = "sha256:44e58a9104ec189bf42e76b3a7fe91e2b2879d96d48e9a77e5e32ff699c9204e"}, + {file = "apeye-1.4.1.tar.gz", hash = "sha256:14ea542fad689e3bfdbda2189a354a4908e90aee4bf84c15ab75d68453d76a36"}, +] + +[[package]] +name = "apeye-core" +version = "1.1.4" +requires_python = ">=3.6.1" +summary = "Core (offline) functionality for the apeye library." +dependencies = [ + "domdf-python-tools>=2.6.0", + "idna>=2.5", +] +files = [ + {file = "apeye_core-1.1.4-py3-none-any.whl", hash = "sha256:084bc696448d3ac428fece41c1f2eb08fa9d9ce1d1b2f4d43187e3def4528a60"}, + {file = "apeye_core-1.1.4.tar.gz", hash = "sha256:72bb89fed3baa647cb81aa28e1d851787edcbf9573853b5d2b5f87c02f50eaf5"}, +] + +[[package]] +name = "autodocsumm" +version = "0.2.11" +requires_python = ">=3.7" +summary = "Extended sphinx autodoc including automatic autosummaries" +dependencies = [ + "Sphinx<8.0,>=2.2", +] +files = [ + {file = "autodocsumm-0.2.11-py3-none-any.whl", hash = "sha256:f1d0a623bf1ad64d979a9e23fd360d1fb1b8f869beaf3197f711552cddc174e2"}, + {file = "autodocsumm-0.2.11.tar.gz", hash = "sha256:183212bd9e9f3b58a96bb21b7958ee4e06224107aa45b2fd894b61b83581b9a9"}, +] + +[[package]] +name = "babel" +version = "2.12.1" +requires_python = ">=3.7" +summary = "Internationalization utilities" +dependencies = [ + "pytz>=2015.7; python_version < \"3.9\"", +] +files = [ + {file = "Babel-2.12.1-py3-none-any.whl", hash = "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610"}, + {file = "Babel-2.12.1.tar.gz", hash = "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"}, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.2" +requires_python = ">=3.6.0" +summary = "Screen-scraping library" +dependencies = [ + "soupsieve>1.2", +] +files = [ + {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, + {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, +] + +[[package]] +name = "black" +version = "23.9.1" +requires_python = ">=3.8" +summary = "The uncompromising code formatter." +dependencies = [ + "click>=8.0.0", + "mypy-extensions>=0.4.3", + "packaging>=22.0", + "pathspec>=0.9.0", + "platformdirs>=2", + "tomli>=1.1.0; python_version < \"3.11\"", + "typing-extensions>=4.0.1; python_version < \"3.11\"", +] +files = [ + {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, + {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, + {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, + {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, + {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, + {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, + {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, + {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, + {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, + {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, + {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, + {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, + {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, + {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, + {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, +] + +[[package]] +name = "blacken-docs" +version = "1.16.0" +requires_python = ">=3.8" +summary = "Run Black on Python code blocks in documentation files." +dependencies = [ + "black>=22.1.0", +] +files = [ + {file = "blacken_docs-1.16.0-py3-none-any.whl", hash = "sha256:b0dcb84b28ebfb352a2539202d396f50e15a54211e204a8005798f1d1edb7df8"}, + {file = "blacken_docs-1.16.0.tar.gz", hash = "sha256:b4bdc3f3d73898dfbf0166f292c6ccfe343e65fc22ddef5319c95d1a8dcc6c1c"}, +] + +[[package]] +name = "cachecontrol" +version = "0.13.1" +requires_python = ">=3.7" +summary = "httplib2 caching for requests" +dependencies = [ + "msgpack>=0.5.2", + "requests>=2.16.0", +] +files = [ + {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, + {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, +] + +[[package]] +name = "cachecontrol" +version = "0.13.1" +extras = ["filecache"] +requires_python = ">=3.7" +summary = "httplib2 caching for requests" +dependencies = [ + "cachecontrol==0.13.1", + "filelock>=3.8.0", +] +files = [ + {file = "cachecontrol-0.13.1-py3-none-any.whl", hash = "sha256:95dedbec849f46dda3137866dc28b9d133fc9af55f5b805ab1291833e4457aa4"}, + {file = "cachecontrol-0.13.1.tar.gz", hash = "sha256:f012366b79d2243a6118309ce73151bf52a38d4a5dac8ea57f09bd29087e506b"}, +] + +[[package]] +name = "certifi" +version = "2023.7.22" +requires_python = ">=3.6" +summary = "Python package for providing Mozilla's CA Bundle." +files = [ + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, +] + +[[package]] +name = "cfgv" +version = "3.4.0" +requires_python = ">=3.8" +summary = "Validate configuration and produce human readable error messages." +files = [ + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.2.0" +requires_python = ">=3.7.0" +summary = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +files = [ + {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, + {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, +] + +[[package]] +name = "click" +version = "8.1.7" +requires_python = ">=3.7" +summary = "Composable command line interface toolkit" +dependencies = [ + "colorama; platform_system == \"Windows\"", +] +files = [ + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, +] + +[[package]] +name = "codespell" +version = "2.2.5" +requires_python = ">=3.7" +summary = "Codespell" +files = [ + {file = "codespell-2.2.5-py3-none-any.whl", hash = "sha256:efa037f54b73c84f7bd14ce8e853d5f822cdd6386ef0ff32e957a3919435b9ec"}, + {file = "codespell-2.2.5.tar.gz", hash = "sha256:6d9faddf6eedb692bf80c9a94ec13ab4f5fb585aabae5f3750727148d7b5be56"}, +] + +[[package]] +name = "colorama" +version = "0.4.6" +requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +summary = "Cross-platform colored terminal text." +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "coverage" +version = "7.3.1" +requires_python = ">=3.8" +summary = "Code coverage measurement for Python" +files = [ + {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, + {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, + {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, + {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, + {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, + {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, + {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, + {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, + {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, + {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, + {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, + {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, + {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, + {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, +] + +[[package]] +name = "coverage" +version = "7.3.1" +extras = ["toml"] +requires_python = ">=3.8" +summary = "Code coverage measurement for Python" +dependencies = [ + "coverage==7.3.1", + "tomli; python_full_version <= \"3.11.0a6\"", +] +files = [ + {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, + {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, + {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, + {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, + {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, + {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, + {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, + {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, + {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, + {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, + {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, + {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, + {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, + {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, + {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, + {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, + {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, + {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, + {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, + {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, + {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, + {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, + {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, + {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, + {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, + {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, + {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, + {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, +] + +[[package]] +name = "cssutils" +version = "2.7.1" +requires_python = ">=3.7" +summary = "A CSS Cascading Style Sheets library for Python" +files = [ + {file = "cssutils-2.7.1-py3-none-any.whl", hash = "sha256:1e92e0d9dab2ec8af9f38d715393964ba533dc3beacab9b072511dfc241db775"}, + {file = "cssutils-2.7.1.tar.gz", hash = "sha256:340ecfd9835d21df8f98500f0dfcea0aee41cb4e19ecbc2cf94f0a6d36d7cb6c"}, +] + +[[package]] +name = "dict2css" +version = "0.3.0" +requires_python = ">=3.6" +summary = "A μ-library for constructing cascading style sheets from Python dictionaries." +dependencies = [ + "cssutils>=2.2.0", + "domdf-python-tools>=2.2.0", +] +files = [ + {file = "dict2css-0.3.0-py3-none-any.whl", hash = "sha256:ef934ce73a225fdd5f811b484fe9e2dd768f7ef14a89fc8f4eb5672597131d00"}, + {file = "dict2css-0.3.0.tar.gz", hash = "sha256:1e8b1bf580dca2083198f88a60ec88c878a8829d760dfe45483ef80fe2905117"}, +] + +[[package]] +name = "distlib" +version = "0.3.7" +summary = "Distribution utilities" +files = [ + {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, + {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, +] + +[[package]] +name = "docutils" +version = "0.18.1" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +summary = "Docutils -- Python Documentation Utilities" +files = [ + {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, + {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, +] + +[[package]] +name = "domdf-python-tools" +version = "3.6.1" +requires_python = ">=3.6" +summary = "Helpful functions for Python 🐍 🛠️" +dependencies = [ + "importlib-metadata>=3.6.0; python_version < \"3.9\"", + "natsort>=7.0.1", + "typing-extensions>=3.7.4.1", +] +files = [ + {file = "domdf_python_tools-3.6.1-py3-none-any.whl", hash = "sha256:e18158460850957f18e740eb94ede56f580ddb0cb162ab9d9834ed8bbb1b6431"}, + {file = "domdf_python_tools-3.6.1.tar.gz", hash = "sha256:acc04563d23bce4d437dd08af6b9bea788328c412772a044d8ca428a7ad861be"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.1.3" +requires_python = ">=3.7" +summary = "Backport of PEP 654 (exception groups)" +files = [ + {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, + {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, +] + +[[package]] +name = "filelock" +version = "3.12.4" +requires_python = ">=3.8" +summary = "A platform independent file lock." +files = [ + {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, + {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, +] + +[[package]] +name = "html5lib" +version = "1.1" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +summary = "HTML parser based on the WHATWG HTML specification" +dependencies = [ + "six>=1.9", + "webencodings", +] +files = [ + {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"}, + {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"}, +] + +[[package]] +name = "identify" +version = "2.5.29" +requires_python = ">=3.8" +summary = "File identification library for Python" +files = [ + {file = "identify-2.5.29-py2.py3-none-any.whl", hash = "sha256:24437fbf6f4d3fe6efd0eb9d67e24dd9106db99af5ceb27996a5f7895f24bf1b"}, + {file = "identify-2.5.29.tar.gz", hash = "sha256:d43d52b86b15918c137e3a74fff5224f60385cd0e9c38e99d07c257f02f151a5"}, +] + +[[package]] +name = "idna" +version = "3.4" +requires_python = ">=3.5" +summary = "Internationalized Domain Names in Applications (IDNA)" +files = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] + +[[package]] +name = "imagesize" +version = "1.4.1" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +summary = "Getting image size from png/jpeg/jpeg2000/gif file" +files = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] + +[[package]] +name = "importlib-metadata" +version = "6.8.0" +requires_python = ">=3.8" +summary = "Read metadata from Python packages" +dependencies = [ + "zipp>=0.5", +] +files = [ + {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, + {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +requires_python = ">=3.7" +summary = "brain-dead simple config-ini parsing" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jinja2" +version = "3.1.2" +requires_python = ">=3.7" +summary = "A very fast and expressive template engine." +dependencies = [ + "MarkupSafe>=2.0", +] +files = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] + +[[package]] +name = "livereload" +version = "2.6.3" +summary = "Python LiveReload is an awesome tool for web developers" +dependencies = [ + "six", + "tornado; python_version > \"2.7\"", +] +files = [ + {file = "livereload-2.6.3-py2.py3-none-any.whl", hash = "sha256:ad4ac6f53b2d62bb6ce1a5e6e96f1f00976a32348afedcb4b6d68df2a1d346e4"}, + {file = "livereload-2.6.3.tar.gz", hash = "sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869"}, +] + +[[package]] +name = "markupsafe" +version = "2.1.3" +requires_python = ">=3.7" +summary = "Safely add untrusted strings to HTML/XML markup." +files = [ + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, + {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, + {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, + {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, + {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, + {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, +] + +[[package]] +name = "msgpack" +version = "1.0.5" +summary = "MessagePack serializer" +files = [ + {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"}, + {file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"}, + {file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"}, + {file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"}, + {file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"}, + {file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"}, + {file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"}, + {file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"}, + {file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"}, + {file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"}, + {file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"}, + {file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"}, + {file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"}, + {file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"}, + {file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"}, + {file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"}, + {file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"}, + {file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"}, + {file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"}, + {file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"}, + {file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"}, + {file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"}, + {file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"}, +] + +[[package]] +name = "mypy" +version = "1.5.1" +requires_python = ">=3.8" +summary = "Optional static typing for Python" +dependencies = [ + "mypy-extensions>=1.0.0", + "tomli>=1.1.0; python_version < \"3.11\"", + "typing-extensions>=4.1.0", +] +files = [ + {file = "mypy-1.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f33592ddf9655a4894aef22d134de7393e95fcbdc2d15c1ab65828eee5c66c70"}, + {file = "mypy-1.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:258b22210a4a258ccd077426c7a181d789d1121aca6db73a83f79372f5569ae0"}, + {file = "mypy-1.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9ec1f695f0c25986e6f7f8778e5ce61659063268836a38c951200c57479cc12"}, + {file = "mypy-1.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:abed92d9c8f08643c7d831300b739562b0a6c9fcb028d211134fc9ab20ccad5d"}, + {file = "mypy-1.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:a156e6390944c265eb56afa67c74c0636f10283429171018446b732f1a05af25"}, + {file = "mypy-1.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6ac9c21bfe7bc9f7f1b6fae441746e6a106e48fc9de530dea29e8cd37a2c0cc4"}, + {file = "mypy-1.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:51cb1323064b1099e177098cb939eab2da42fea5d818d40113957ec954fc85f4"}, + {file = "mypy-1.5.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:596fae69f2bfcb7305808c75c00f81fe2829b6236eadda536f00610ac5ec2243"}, + {file = "mypy-1.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:32cb59609b0534f0bd67faebb6e022fe534bdb0e2ecab4290d683d248be1b275"}, + {file = "mypy-1.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:159aa9acb16086b79bbb0016145034a1a05360626046a929f84579ce1666b315"}, + {file = "mypy-1.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f6b0e77db9ff4fda74de7df13f30016a0a663928d669c9f2c057048ba44f09bb"}, + {file = "mypy-1.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:26f71b535dfc158a71264e6dc805a9f8d2e60b67215ca0bfa26e2e1aa4d4d373"}, + {file = "mypy-1.5.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fc3a600f749b1008cc75e02b6fb3d4db8dbcca2d733030fe7a3b3502902f161"}, + {file = "mypy-1.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:26fb32e4d4afa205b24bf645eddfbb36a1e17e995c5c99d6d00edb24b693406a"}, + {file = "mypy-1.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:82cb6193de9bbb3844bab4c7cf80e6227d5225cc7625b068a06d005d861ad5f1"}, + {file = "mypy-1.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4a465ea2ca12804d5b34bb056be3a29dc47aea5973b892d0417c6a10a40b2d65"}, + {file = "mypy-1.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9fece120dbb041771a63eb95e4896791386fe287fefb2837258925b8326d6160"}, + {file = "mypy-1.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d28ddc3e3dfeab553e743e532fb95b4e6afad51d4706dd22f28e1e5e664828d2"}, + {file = "mypy-1.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:57b10c56016adce71fba6bc6e9fd45d8083f74361f629390c556738565af8eeb"}, + {file = "mypy-1.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f"}, + {file = "mypy-1.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8f772942d372c8cbac575be99f9cc9d9fb3bd95c8bc2de6c01411e2c84ebca8a"}, + {file = "mypy-1.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5d627124700b92b6bbaa99f27cbe615c8ea7b3402960f6372ea7d65faf376c14"}, + {file = "mypy-1.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:361da43c4f5a96173220eb53340ace68cda81845cd88218f8862dfb0adc8cddb"}, + {file = "mypy-1.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:330857f9507c24de5c5724235e66858f8364a0693894342485e543f5b07c8693"}, + {file = "mypy-1.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:c543214ffdd422623e9fedd0869166c2f16affe4ba37463975043ef7d2ea8770"}, + {file = "mypy-1.5.1-py3-none-any.whl", hash = "sha256:f757063a83970d67c444f6e01d9550a7402322af3557ce7630d3c957386fa8f5"}, + {file = "mypy-1.5.1.tar.gz", hash = "sha256:b031b9601f1060bf1281feab89697324726ba0c0bae9d7cd7ab4b690940f0b92"}, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +requires_python = ">=3.5" +summary = "Type system extensions for programs checked with the mypy type checker." +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "natsort" +version = "8.4.0" +requires_python = ">=3.7" +summary = "Simple yet flexible natural sorting in Python." +files = [ + {file = "natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c"}, + {file = "natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581"}, +] + +[[package]] +name = "nodeenv" +version = "1.8.0" +requires_python = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +summary = "Node.js virtual environment builder" +dependencies = [ + "setuptools", +] +files = [ + {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, + {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, +] + +[[package]] +name = "packaging" +version = "23.1" +requires_python = ">=3.7" +summary = "Core utilities for Python packages" +files = [ + {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, + {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, +] + +[[package]] +name = "pathspec" +version = "0.11.2" +requires_python = ">=3.7" +summary = "Utility library for gitignore style pattern matching of file paths." +files = [ + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, +] + +[[package]] +name = "platformdirs" +version = "3.10.0" +requires_python = ">=3.7" +summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +files = [ + {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, + {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, +] + +[[package]] +name = "pluggy" +version = "1.3.0" +requires_python = ">=3.8" +summary = "plugin and hook calling mechanisms for python" +files = [ + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, +] + +[[package]] +name = "pre-commit" +version = "3.4.0" +requires_python = ">=3.8" +summary = "A framework for managing and maintaining multi-language pre-commit hooks." +dependencies = [ + "cfgv>=2.0.0", + "identify>=1.0.0", + "nodeenv>=0.11.1", + "pyyaml>=5.1", + "virtualenv>=20.10.0", +] +files = [ + {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, + {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, +] + +[[package]] +name = "pygments" +version = "2.16.1" +requires_python = ">=3.7" +summary = "Pygments is a syntax highlighting package written in Python." +files = [ + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, +] + +[[package]] +name = "pyright" +version = "1.1.327" +requires_python = ">=3.7" +summary = "Command line wrapper for pyright" +dependencies = [ + "nodeenv>=1.6.0", +] +files = [ + {file = "pyright-1.1.327-py3-none-any.whl", hash = "sha256:3462cda239e9140276238bbdbd0b59d77406f1c2e14d8cb8c20c8e25639c6b3c"}, + {file = "pyright-1.1.327.tar.gz", hash = "sha256:ba74148ad64f22020dbbed6781c4bdb38ecb8a7ca90dc3c87a4f08d1c0e11592"}, +] + +[[package]] +name = "pytest" +version = "7.4.2" +requires_python = ">=3.7" +summary = "pytest: simple powerful testing with Python" +dependencies = [ + "colorama; sys_platform == \"win32\"", + "exceptiongroup>=1.0.0rc8; python_version < \"3.11\"", + "iniconfig", + "packaging", + "pluggy<2.0,>=0.12", + "tomli>=1.0.0; python_version < \"3.11\"", +] +files = [ + {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, + {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, +] + +[[package]] +name = "pytest-asyncio" +version = "0.21.1" +requires_python = ">=3.7" +summary = "Pytest support for asyncio" +dependencies = [ + "pytest>=7.0.0", +] +files = [ + {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"}, + {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"}, +] + +[[package]] +name = "pytest-cov" +version = "4.1.0" +requires_python = ">=3.7" +summary = "Pytest plugin for measuring coverage." +dependencies = [ + "coverage[toml]>=5.2.1", + "pytest>=4.6", +] +files = [ + {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, + {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, +] + +[[package]] +name = "pytz" +version = "2023.3.post1" +summary = "World timezone definitions, modern and historical" +files = [ + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +requires_python = ">=3.6" +summary = "YAML parser and emitter for Python" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "requests" +version = "2.31.0" +requires_python = ">=3.7" +summary = "Python HTTP for Humans." +dependencies = [ + "certifi>=2017.4.17", + "charset-normalizer<4,>=2", + "idna<4,>=2.5", + "urllib3<3,>=1.21.1", +] +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[[package]] +name = "ruamel-yaml" +version = "0.17.32" +requires_python = ">=3" +summary = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" +dependencies = [ + "ruamel-yaml-clib>=0.2.7; platform_python_implementation == \"CPython\" and python_version < \"3.12\"", +] +files = [ + {file = "ruamel.yaml-0.17.32-py3-none-any.whl", hash = "sha256:23cd2ed620231677564646b0c6a89d138b6822a0d78656df7abda5879ec4f447"}, + {file = "ruamel.yaml-0.17.32.tar.gz", hash = "sha256:ec939063761914e14542972a5cba6d33c23b0859ab6342f61cf070cfc600efc2"}, +] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.7" +requires_python = ">=3.5" +summary = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" +files = [ + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5859983f26d8cd7bb5c287ef452e8aacc86501487634573d260968f753e1d71"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:debc87a9516b237d0466a711b18b6ebeb17ba9f391eb7f91c649c5c4ec5006c7"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:df5828871e6648db72d1c19b4bd24819b80a755c4541d3409f0f7acd0f335c80"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:efa08d63ef03d079dcae1dfe334f6c8847ba8b645d08df286358b1f5293d24ab"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win32.whl", hash = "sha256:763d65baa3b952479c4e972669f679fe490eee058d5aa85da483ebae2009d231"}, + {file = "ruamel.yaml.clib-0.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:d000f258cf42fec2b1bbf2863c61d7b8918d31ffee905da62dede869254d3b8a"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:045e0626baf1c52e5527bd5db361bc83180faaba2ff586e763d3d5982a876a9e"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:1a6391a7cabb7641c32517539ca42cf84b87b667bad38b78d4d42dd23e957c81"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9c7617df90c1365638916b98cdd9be833d31d337dbcd722485597b43c4a215bf"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:41d0f1fa4c6830176eef5b276af04c89320ea616655d01327d5ce65e50575c94"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win32.whl", hash = "sha256:f6d3d39611ac2e4f62c3128a9eed45f19a6608670c5a2f4f07f24e8de3441d38"}, + {file = "ruamel.yaml.clib-0.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:da538167284de58a52109a9b89b8f6a53ff8437dd6dc26d33b57bf6699153122"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:91a789b4aa0097b78c93e3dc4b40040ba55bef518f84a40d4442f713b4094acb"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:99e77daab5d13a48a4054803d052ff40780278240a902b880dd37a51ba01a307"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:3243f48ecd450eddadc2d11b5feb08aca941b5cd98c9b1db14b2fd128be8c697"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:8831a2cedcd0f0927f788c5bdf6567d9dc9cc235646a434986a852af1cb54b4b"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win32.whl", hash = "sha256:3110a99e0f94a4a3470ff67fc20d3f96c25b13d24c6980ff841e82bafe827cac"}, + {file = "ruamel.yaml.clib-0.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:92460ce908546ab69770b2e576e4f99fbb4ce6ab4b245345a3869a0a0410488f"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5bc0667c1eb8f83a3752b71b9c4ba55ef7c7058ae57022dd9b29065186a113d9"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:4a4d8d417868d68b979076a9be6a38c676eca060785abaa6709c7b31593c35d1"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf9a6bc4a0221538b1a7de3ed7bca4c93c02346853f44e1cd764be0023cd3640"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:a7b301ff08055d73223058b5c46c55638917f04d21577c95e00e0c4d79201a6b"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win32.whl", hash = "sha256:d5e51e2901ec2366b79f16c2299a03e74ba4531ddcfacc1416639c557aef0ad8"}, + {file = "ruamel.yaml.clib-0.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:184faeaec61dbaa3cace407cffc5819f7b977e75360e8d5ca19461cd851a5fc5"}, + {file = "ruamel.yaml.clib-0.2.7.tar.gz", hash = "sha256:1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497"}, +] + +[[package]] +name = "ruff" +version = "0.0.290" +requires_python = ">=3.7" +summary = "An extremely fast Python linter, written in Rust." +files = [ + {file = "ruff-0.0.290-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:0e2b09ac4213b11a3520221083866a5816616f3ae9da123037b8ab275066fbac"}, + {file = "ruff-0.0.290-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:4ca6285aa77b3d966be32c9a3cd531655b3d4a0171e1f9bf26d66d0372186767"}, + {file = "ruff-0.0.290-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35e3550d1d9f2157b0fcc77670f7bb59154f223bff281766e61bdd1dd854e0c5"}, + {file = "ruff-0.0.290-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d748c8bd97874f5751aed73e8dde379ce32d16338123d07c18b25c9a2796574a"}, + {file = "ruff-0.0.290-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:982af5ec67cecd099e2ef5e238650407fb40d56304910102d054c109f390bf3c"}, + {file = "ruff-0.0.290-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:bbd37352cea4ee007c48a44c9bc45a21f7ba70a57edfe46842e346651e2b995a"}, + {file = "ruff-0.0.290-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d9be6351b7889462912e0b8185a260c0219c35dfd920fb490c7f256f1d8313e"}, + {file = "ruff-0.0.290-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75cdc7fe32dcf33b7cec306707552dda54632ac29402775b9e212a3c16aad5e6"}, + {file = "ruff-0.0.290-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb07f37f7aecdbbc91d759c0c09870ce0fb3eed4025eebedf9c4b98c69abd527"}, + {file = "ruff-0.0.290-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2ab41bc0ba359d3f715fc7b705bdeef19c0461351306b70a4e247f836b9350ed"}, + {file = "ruff-0.0.290-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:150bf8050214cea5b990945b66433bf9a5e0cef395c9bc0f50569e7de7540c86"}, + {file = "ruff-0.0.290-py3-none-musllinux_1_2_i686.whl", hash = "sha256:75386ebc15fe5467248c039f5bf6a0cfe7bfc619ffbb8cd62406cd8811815fca"}, + {file = "ruff-0.0.290-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ac93eadf07bc4ab4c48d8bb4e427bf0f58f3a9c578862eb85d99d704669f5da0"}, + {file = "ruff-0.0.290-py3-none-win32.whl", hash = "sha256:461fbd1fb9ca806d4e3d5c745a30e185f7cf3ca77293cdc17abb2f2a990ad3f7"}, + {file = "ruff-0.0.290-py3-none-win_amd64.whl", hash = "sha256:f1f49f5ec967fd5778813780b12a5650ab0ebcb9ddcca28d642c689b36920796"}, + {file = "ruff-0.0.290-py3-none-win_arm64.whl", hash = "sha256:ae5a92dfbdf1f0c689433c223f8dac0782c2b2584bd502dfdbc76475669f1ba1"}, + {file = "ruff-0.0.290.tar.gz", hash = "sha256:949fecbc5467bb11b8db810a7fa53c7e02633856ee6bd1302b2f43adcd71b88d"}, +] + +[[package]] +name = "setuptools" +version = "68.2.2" +requires_python = ">=3.8" +summary = "Easily download, build, install, upgrade, and uninstall Python packages" +files = [ + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, +] + +[[package]] +name = "shellcheck-py" +version = "0.9.0.5" +requires_python = ">=3.7" +summary = "Python wrapper around invoking shellcheck (https://www.shellcheck.net/)" +files = [ + {file = "shellcheck_py-0.9.0.5-py2.py3-none-macosx_10_15_x86_64.whl", hash = "sha256:98d9668f72afeb65c7a8e60f02202b00d64f2de9e9b103dfb5d0067ded391ef3"}, + {file = "shellcheck_py-0.9.0.5-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65ddc19a1ae4249802a663682834ed452f9e75615d58c3ce6b3f1b0d2a484f32"}, + {file = "shellcheck_py-0.9.0.5-py2.py3-none-win_amd64.whl", hash = "sha256:9f50a7354f355753f365668e79aa3d410cb6f4d9358e4c5d8464018cf2b4863a"}, + {file = "shellcheck_py-0.9.0.5.tar.gz", hash = "sha256:50b2057fac7227fd83614a9bf9d123042e53e03d92f2c7f1778448a8937f07a4"}, +] + +[[package]] +name = "shibuya" +version = "2023.9.3" +requires_python = ">=3.7" +summary = "A clean, responsive, and customizable Sphinx documentation theme with light/dark mode." +dependencies = [ + "Sphinx", +] +files = [ + {file = "shibuya-2023.9.3-py3-none-any.whl", hash = "sha256:9e518389e1bf590bfceb588392450c09b80dac29f4f49f171a2bd7284f993429"}, + {file = "shibuya-2023.9.3.tar.gz", hash = "sha256:9dc2edb13db07d37ad4a774be94aaee68a4a530ce46141daa5f40afcc228b90e"}, +] + +[[package]] +name = "six" +version = "1.16.0" +requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +summary = "Python 2 and 3 compatibility utilities" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "snowballstemmer" +version = "2.2.0" +summary = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." +files = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] + +[[package]] +name = "soupsieve" +version = "2.5" +requires_python = ">=3.8" +summary = "A modern CSS selector implementation for Beautiful Soup." +files = [ + {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"}, + {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"}, +] + +[[package]] +name = "sourcery" +version = "1.9.0" +summary = "Magically refactor Python" +files = [ + {file = "sourcery-1.9.0-py2.py3-none-macosx_10_9_universal2.whl", hash = "sha256:9353d9412462f9ab8b34525025b8eeb20d0999475c61c301190e491b03ff1642"}, + {file = "sourcery-1.9.0-py2.py3-none-manylinux1_x86_64.whl", hash = "sha256:ca851e0117d4e01058170b580c78ba890de63d05954b5e072577f1a70fd7431d"}, + {file = "sourcery-1.9.0-py2.py3-none-win_amd64.whl", hash = "sha256:46483b99d7ffd9afa41310457a71bee5d3b9a8ca7aad2cc5eb7a12b9634a6956"}, +] + +[[package]] +name = "sphinx" +version = "7.1.2" +requires_python = ">=3.8" +summary = "Python documentation generator" +dependencies = [ + "Jinja2>=3.0", + "Pygments>=2.13", + "alabaster<0.8,>=0.7", + "babel>=2.9", + "colorama>=0.4.5; sys_platform == \"win32\"", + "docutils<0.21,>=0.18.1", + "imagesize>=1.3", + "importlib-metadata>=4.8; python_version < \"3.10\"", + "packaging>=21.0", + "requests>=2.25.0", + "snowballstemmer>=2.0", + "sphinxcontrib-applehelp", + "sphinxcontrib-devhelp", + "sphinxcontrib-htmlhelp>=2.0.0", + "sphinxcontrib-jsmath", + "sphinxcontrib-qthelp", + "sphinxcontrib-serializinghtml>=1.1.5", +] +files = [ + {file = "sphinx-7.1.2-py3-none-any.whl", hash = "sha256:d170a81825b2fcacb6dfd5a0d7f578a053e45d3f2b153fecc948c37344eb4cbe"}, + {file = "sphinx-7.1.2.tar.gz", hash = "sha256:780f4d32f1d7d1126576e0e5ecc19dc32ab76cd24e950228dcf7b1f6d3d9e22f"}, +] + +[[package]] +name = "sphinx-autobuild" +version = "2021.3.14" +requires_python = ">=3.6" +summary = "Rebuild Sphinx documentation on changes, with live-reload in the browser." +dependencies = [ + "colorama", + "livereload", + "sphinx", +] +files = [ + {file = "sphinx-autobuild-2021.3.14.tar.gz", hash = "sha256:de1ca3b66e271d2b5b5140c35034c89e47f263f2cd5db302c9217065f7443f05"}, + {file = "sphinx_autobuild-2021.3.14-py3-none-any.whl", hash = "sha256:8fe8cbfdb75db04475232f05187c776f46f6e9e04cacf1e49ce81bdac649ccac"}, +] + +[[package]] +name = "sphinx-autodoc-typehints" +version = "1.24.0" +requires_python = ">=3.8" +summary = "Type hints (PEP 484) support for the Sphinx autodoc extension" +dependencies = [ + "sphinx>=7.0.1", +] +files = [ + {file = "sphinx_autodoc_typehints-1.24.0-py3-none-any.whl", hash = "sha256:6a73c0c61a9144ce2ed5ef2bed99d615254e5005c1cc32002017d72d69fb70e6"}, + {file = "sphinx_autodoc_typehints-1.24.0.tar.gz", hash = "sha256:94e440066941bb237704bb880785e2d05e8ae5406c88674feefbb938ad0dc6af"}, +] + +[[package]] +name = "sphinx-click" +version = "5.0.1" +requires_python = ">=3.8" +summary = "Sphinx extension that automatically documents click applications" +dependencies = [ + "click>=7.0", + "docutils", + "sphinx>=2.0", +] +files = [ + {file = "sphinx-click-5.0.1.tar.gz", hash = "sha256:fcc7df15e56e3ff17ebf446cdd316c2eb79580b37c49579fba11e5468802ef25"}, + {file = "sphinx_click-5.0.1-py3-none-any.whl", hash = "sha256:31836ca22f746d3c26cbfdfe0c58edf0bca5783731a0b2e25bb6d59800bb75a1"}, +] + +[[package]] +name = "sphinx-copybutton" +version = "0.5.2" +requires_python = ">=3.7" +summary = "Add a copy button to each of your code cells." +dependencies = [ + "sphinx>=1.8", +] +files = [ + {file = "sphinx-copybutton-0.5.2.tar.gz", hash = "sha256:4cf17c82fb9646d1bc9ca92ac280813a3b605d8c421225fd9913154103ee1fbd"}, + {file = "sphinx_copybutton-0.5.2-py3-none-any.whl", hash = "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e"}, +] + +[[package]] +name = "sphinx-design" +version = "0.5.0" +requires_python = ">=3.8" +summary = "A sphinx extension for designing beautiful, view size responsive web components." +dependencies = [ + "sphinx<8,>=5", +] +files = [ + {file = "sphinx_design-0.5.0-py3-none-any.whl", hash = "sha256:1af1267b4cea2eedd6724614f19dcc88fe2e15aff65d06b2f6252cee9c4f4c1e"}, + {file = "sphinx_design-0.5.0.tar.gz", hash = "sha256:e8e513acea6f92d15c6de3b34e954458f245b8e761b45b63950f65373352ab00"}, +] + +[[package]] +name = "sphinx-jinja2-compat" +version = "0.2.0" +requires_python = ">=3.6" +summary = "Patches Jinja2 v3 to restore compatibility with earlier Sphinx versions." +dependencies = [ + "jinja2>=2.10", + "markupsafe>=1", +] +files = [ + {file = "sphinx_jinja2_compat-0.2.0-py3-none-any.whl", hash = "sha256:a5f3112d6873991c2cf28e37287163a0485d9c0812863b8aa4df7182722501fb"}, + {file = "sphinx_jinja2_compat-0.2.0.tar.gz", hash = "sha256:c41346d859653e202b623f4236da8936243ed734abf5984adc3bef59d6f9a946"}, +] + +[[package]] +name = "sphinx-prompt" +version = "1.5.0" +summary = "Sphinx directive to add unselectable prompt" +dependencies = [ + "Sphinx", + "pygments", +] +files = [ + {file = "sphinx_prompt-1.5.0-py3-none-any.whl", hash = "sha256:fa4e90d8088b5a996c76087d701fc7e31175f8b9dc4aab03a507e45051067162"}, +] + +[[package]] +name = "sphinx-tabs" +version = "3.4.1" +requires_python = "~=3.7" +summary = "Tabbed views for Sphinx" +dependencies = [ + "docutils~=0.18.0", + "pygments", + "sphinx", +] +files = [ + {file = "sphinx-tabs-3.4.1.tar.gz", hash = "sha256:d2a09f9e8316e400d57503f6df1c78005fdde220e5af589cc79d493159e1b832"}, + {file = "sphinx_tabs-3.4.1-py3-none-any.whl", hash = "sha256:7cea8942aeccc5d01a995789c01804b787334b55927f29b36ba16ed1e7cb27c6"}, +] + +[[package]] +name = "sphinx-toolbox" +version = "3.5.0" +requires_python = ">=3.7" +summary = "Box of handy tools for Sphinx 🧰 📔" +dependencies = [ + "apeye>=0.4.0", + "autodocsumm>=0.2.0", + "beautifulsoup4>=4.9.1", + "cachecontrol[filecache]>=0.13.0", + "dict2css>=0.2.3", + "docutils>=0.16", + "domdf-python-tools>=2.9.0", + "filelock>=3.8.0", + "html5lib>=1.1", + "ruamel-yaml>=0.16.12", + "sphinx-autodoc-typehints>=1.11.1", + "sphinx-jinja2-compat>=0.1.0", + "sphinx-prompt>=1.1.0", + "sphinx-tabs<3.5.0,>=1.2.1", + "sphinx>=3.2.0", + "tabulate>=0.8.7", + "typing-extensions!=3.10.0.1,>=3.7.4.3", +] +files = [ + {file = "sphinx_toolbox-3.5.0-py3-none-any.whl", hash = "sha256:20dfd3566717db6f2da7a400a54dc4b946f064fb31250fa44802d54cfb9b8a03"}, + {file = "sphinx_toolbox-3.5.0.tar.gz", hash = "sha256:e5b5a7153f1997572d71a06aaf6cec225483492ec2c60097a84f15aad6df18b7"}, +] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.4" +requires_python = ">=3.8" +summary = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" +files = [ + {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, + {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, +] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +requires_python = ">=3.5" +summary = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +files = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.0.1" +requires_python = ">=3.8" +summary = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +files = [ + {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, + {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, +] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +requires_python = ">=3.5" +summary = "A sphinx extension which renders display math in HTML via JavaScript" +files = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +requires_python = ">=3.5" +summary = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +files = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.5" +requires_python = ">=3.5" +summary = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +files = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +requires_python = ">=3.7" +summary = "Pretty-print tabular data" +files = [ + {file = "tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f"}, + {file = "tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c"}, +] + +[[package]] +name = "tomli" +version = "2.0.1" +requires_python = ">=3.7" +summary = "A lil' TOML parser" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "tornado" +version = "6.3.3" +requires_python = ">= 3.8" +summary = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +files = [ + {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:502fba735c84450974fec147340016ad928d29f1e91f49be168c0a4c18181e1d"}, + {file = "tornado-6.3.3-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:805d507b1f588320c26f7f097108eb4023bbaa984d63176d1652e184ba24270a"}, + {file = "tornado-6.3.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bd19ca6c16882e4d37368e0152f99c099bad93e0950ce55e71daed74045908f"}, + {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ac51f42808cca9b3613f51ffe2a965c8525cb1b00b7b2d56828b8045354f76a"}, + {file = "tornado-6.3.3-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:71a8db65160a3c55d61839b7302a9a400074c9c753040455494e2af74e2501f2"}, + {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ceb917a50cd35882b57600709dd5421a418c29ddc852da8bcdab1f0db33406b0"}, + {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_i686.whl", hash = "sha256:7d01abc57ea0dbb51ddfed477dfe22719d376119844e33c661d873bf9c0e4a16"}, + {file = "tornado-6.3.3-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:9dc4444c0defcd3929d5c1eb5706cbe1b116e762ff3e0deca8b715d14bf6ec17"}, + {file = "tornado-6.3.3-cp38-abi3-win32.whl", hash = "sha256:65ceca9500383fbdf33a98c0087cb975b2ef3bfb874cb35b8de8740cf7f41bd3"}, + {file = "tornado-6.3.3-cp38-abi3-win_amd64.whl", hash = "sha256:22d3c2fa10b5793da13c807e6fc38ff49a4f6e1e3868b0a6f4164768bb8e20f5"}, + {file = "tornado-6.3.3.tar.gz", hash = "sha256:e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe"}, +] + +[[package]] +name = "typing-extensions" +version = "4.8.0" +requires_python = ">=3.8" +summary = "Backported and Experimental Type Hints for Python 3.8+" +files = [ + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, +] + +[[package]] +name = "urllib3" +version = "2.0.5" +requires_python = ">=3.7" +summary = "HTTP library with thread-safe connection pooling, file post, and more." +files = [ + {file = "urllib3-2.0.5-py3-none-any.whl", hash = "sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"}, + {file = "urllib3-2.0.5.tar.gz", hash = "sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594"}, +] + +[[package]] +name = "virtualenv" +version = "20.24.5" +requires_python = ">=3.7" +summary = "Virtual Python Environment builder" +dependencies = [ + "distlib<1,>=0.3.7", + "filelock<4,>=3.12.2", + "platformdirs<4,>=3.9.1", +] +files = [ + {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, + {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +summary = "Character encoding aliases for legacy web content" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "zipp" +version = "3.17.0" +requires_python = ">=3.8" +summary = "Backport of pathlib-compatible object wrapper for zip files" +files = [ + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, +] diff --git a/src/__init__.py b/project_template/__init__.py similarity index 100% rename from src/__init__.py rename to project_template/__init__.py diff --git a/src/__metadata__.py b/project_template/__metadata__.py similarity index 100% rename from src/__metadata__.py rename to project_template/__metadata__.py diff --git a/pyproject.toml b/pyproject.toml index ef782a3..82c6e39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,7 +94,6 @@ line-length = 120 include = '\.pyi?$' [tool.codespell] -ignore-words-list = "selectin" skip = 'pdm.lock' [tool.coverage.run] @@ -112,15 +111,13 @@ exclude_lines = [ asyncio_mode = "auto" [tool.pyright] -include = ["src"] +include = ["project_template"] exclude = ["tools"] [tool.slotscheck] strict-imports = false [tool.mypy] -plugins = ["pydantic.mypy"] - warn_unused_ignores = true warn_redundant_casts = true warn_unused_configs = true @@ -128,7 +125,7 @@ warn_unreachable = true warn_return_any = true strict = true disallow_untyped_decorators = true -disallow_any_generics = false +disallow_any_generics = true implicit_reexport = false show_error_codes = true @@ -152,7 +149,7 @@ ignore = [ "PLW2901" # pylint - for loop variable overwritten by assignment target ] line-length = 120 -src = ["src", "tests", "docs/examples"] +src = ["project_template", "tests", "docs/examples"] target-version = "py38" [tool.ruff.pydocstyle] diff --git a/tests/test_src.py b/tests/test_src.py index bc7095d..e940da0 100644 --- a/tests/test_src.py +++ b/tests/test_src.py @@ -1,4 +1,4 @@ -from src import return_three +from project_template import return_three def test_return_three() -> None: diff --git a/tools/sphinx_ext/__init__.py b/tools/sphinx_ext/__init__.py index b3450b8..9690daf 100644 --- a/tools/sphinx_ext/__init__.py +++ b/tools/sphinx_ext/__init__.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING -from . import changelog, missing_references, run_examples +from . import changelog, missing_references if TYPE_CHECKING: from sphinx.application import Sphinx @@ -10,7 +10,6 @@ def setup(app: Sphinx) -> dict[str, bool]: ext_config = {} - ext_config.update(run_examples.setup(app)) ext_config.update(missing_references.setup(app)) ext_config.update(changelog.setup(app)) diff --git a/tools/sphinx_ext/run_examples.py b/tools/sphinx_ext/run_examples.py deleted file mode 100644 index 9a60dc6..0000000 --- a/tools/sphinx_ext/run_examples.py +++ /dev/null @@ -1,188 +0,0 @@ -"""Sphinx extension to run examples and include their output in the docs.""" -from __future__ import annotations - -import importlib -import logging -import multiprocessing -import os -import re -import shlex -import socket -import subprocess -import sys -import time -from contextlib import contextmanager, redirect_stderr -from pathlib import Path -from typing import TYPE_CHECKING, Any, ClassVar, Generator - -import httpx -import uvicorn -from auto_pytabs.sphinx_ext import CodeBlockOverride, LiteralIncludeOverride -from docutils.nodes import Node, admonition, literal_block, title -from docutils.parsers.rst import directives -from sphinx.addnodes import highlightlang - -from litestar import Litestar - -if TYPE_CHECKING: - from sphinx.application import Sphinx - -RGX_RUN = re.compile(r"# +?run:(.*)") - -AVAILABLE_PORTS = list(range(9000, 9999)) - -logger = logging.getLogger("sphinx") - -ignore_missing_output = os.getenv("LITESTAR_DOCS_IGNORE_MISSING_EXAMPLE_OUTPUT", "") == "1" - - -class StartupError(RuntimeError): - pass - - -def _load_app_from_path(path: Path) -> Litestar: - module = importlib.import_module(str(path.with_suffix("")).replace("/", ".")) - for obj in module.__dict__.values(): - if isinstance(obj, Litestar): - return obj - raise RuntimeError(f"No Litestar app found in {path}") - - -@contextmanager -def run_app(path: Path) -> Generator[int, None, None]: - """Run an example app from a python file. - - The first ``Litestar`` instance found in the file will be used as target to run. - """ - while AVAILABLE_PORTS: - port = AVAILABLE_PORTS.pop(0) - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: - if sock.connect_ex(("127.0.0.1", port)) != 0: - break - else: - raise StartupError("Could not find an open port") - - app = _load_app_from_path(path) - - def run() -> None: - with redirect_stderr(Path(os.devnull).open()): - uvicorn.run(app, port=port, access_log=False) - - proc = multiprocessing.Process(target=run) - proc.start() - - try: - for _ in range(100): - try: - httpx.get(f"http://127.0.0.1:{port}", timeout=0.1) - break - except httpx.TransportError: - time.sleep(0.1) - else: - raise StartupError(f"App {path} failed to come online") - - yield port - - finally: - proc.kill() - AVAILABLE_PORTS.append(port) - - -def extract_run_args(content: str) -> tuple[str, list[list[str]]]: - """Extract run args from a python file. - - Return the file content stripped of the run comments and a list of argument lists - """ - new_lines = [] - run_configs = [] - for line in content.splitlines(): - if run_stmt_match := RGX_RUN.match(line): - run_stmt = run_stmt_match.group(1).lstrip() - run_configs.append(shlex.split(run_stmt)) - else: - new_lines.append(line) - return "\n".join(new_lines), run_configs - - -def exec_examples(app_file: Path, run_configs: list[list[str]]) -> str: - """Start a server with the example application, run the specified requests against it - and return their results - """ - - results = [] - - with run_app(app_file) as port: - for run_args in run_configs: - url_path, *options = run_args - args = ["curl", "-s", f"http://127.0.0.1:{port}{url_path}", *options] - clean_args = ["curl", f"http://127.0.0.1:8000{url_path}", *options] - - proc = subprocess.run( - args, # noqa: S603 - capture_output=True, - text=True, - check=False, - ) - stdout = proc.stdout.splitlines() - if not stdout: - logger.debug(proc.stderr) - if not ignore_missing_output: - logger.error(f"Example: {app_file}:{args} yielded no results") - continue - - result = "\n".join(("> " + (" ".join(clean_args)), *stdout)) - results.append(result) - - return "\n".join(results) - - -class LiteralInclude(LiteralIncludeOverride): - option_spec: ClassVar[dict[str, Any]] = {**LiteralIncludeOverride.option_spec, "no-run": directives.flag} - - def run(self) -> list[Node]: - cwd = Path.cwd() - docs_dir = cwd / "docs" - language = self.options.get("language") - file = Path(self.env.relfn2path(self.arguments[0])[1]) - - if (language != "python" and file.suffix != ".py") or "no-run" in self.options: - return super().run() - - content = file.read_text() - clean_content, run_args = extract_run_args(content) - - if not run_args: - return super().run() - - tmp_file = self.env.tmp_examples_path / str(file.relative_to(docs_dir)).replace("/", "_") - - self.arguments[0] = f"/{tmp_file.relative_to(docs_dir)!s}" - tmp_file.write_text(clean_content) - - nodes = super().run() - - result = exec_examples(file.relative_to(cwd), run_args) - - nodes.append( - admonition( - "", - title("", "Run it"), - highlightlang( - "", - literal_block("", result), - lang="shell", - force=False, - linenothreshold=sys.maxsize, - ), - literal_block("", result), - ), - ) - - return nodes - - -def setup(app: Sphinx) -> dict[str, bool]: - app.add_directive("literalinclude", LiteralInclude, override=True) - app.add_directive("code-block", CodeBlockOverride, override=True) - - return {"parallel_read_safe": True, "parallel_write_safe": True} From a35998bd678c3141f4c8f62e8f9c169adbfd7c6f Mon Sep 17 00:00:00 2001 From: Peter Schutt <peter.github@proton.me> Date: Mon, 25 Sep 2023 15:52:11 +1000 Subject: [PATCH 5/6] feat: convert to copier template (#2) --- ...ontributorsrc => .all-contributorsrc.jinja | 2 +- CONTRIBUTING.rst => CONTRIBUTING.rst.jinja | 8 +-- Makefile => Makefile.jinja | 4 +- README.md => README.md.jinja | 43 +++++++++------ copier.yaml | 16 ++++++ docs/PYPI_README.md | 54 ------------------- docs/{conf.py => conf.py.jinja} | 15 +++--- pyproject.toml => pyproject.toml.jinja | 30 +++++------ ...operties => sonar-project.properties.jinja | 4 +- tests/{test_src.py => test_src.py.jinja} | 2 +- tools/{build_docs.py => build_docs.py.jinja} | 4 +- tools/new_project.py | 41 -------------- .../{changelog.py => changelog.py.jinja} | 2 +- .../CODEOWNERS | 0 .../workflows/cd.yaml | 0 .../workflows/ci.yaml | 0 .../workflows/docs-preview.yaml.jinja | 14 ++++- .../workflows/docs.yaml | 0 .../workflows/pr-title.yaml | 0 .../workflows/publish.yaml | 0 .../__init__.py | 0 .../__metadata__.py.jinja | 4 +- 22 files changed, 91 insertions(+), 152 deletions(-) rename .all-contributorsrc => .all-contributorsrc.jinja (92%) rename CONTRIBUTING.rst => CONTRIBUTING.rst.jinja (90%) rename Makefile => Makefile.jinja (97%) rename README.md => README.md.jinja (68%) create mode 100644 copier.yaml delete mode 100644 docs/PYPI_README.md rename docs/{conf.py => conf.py.jinja} (89%) rename pyproject.toml => pyproject.toml.jinja (88%) rename sonar-project.properties => sonar-project.properties.jinja (71%) rename tests/{test_src.py => test_src.py.jinja} (61%) rename tools/{build_docs.py => build_docs.py.jinja} (94%) delete mode 100644 tools/new_project.py rename tools/sphinx_ext/{changelog.py => changelog.py.jinja} (98%) rename {.github => {% if true %}.github{% endif %}}/CODEOWNERS (100%) rename {.github => {% if true %}.github{% endif %}}/workflows/cd.yaml (100%) rename {.github => {% if true %}.github{% endif %}}/workflows/ci.yaml (100%) rename .github/workflows/docs-preview.yaml => {% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja (86%) rename {.github => {% if true %}.github{% endif %}}/workflows/docs.yaml (100%) rename {.github => {% if true %}.github{% endif %}}/workflows/pr-title.yaml (100%) rename {.github => {% if true %}.github{% endif %}}/workflows/publish.yaml (100%) rename {project_template => {{module_name}}}/__init__.py (100%) rename project_template/__metadata__.py => {{module_name}}/__metadata__.py.jinja (61%) diff --git a/.all-contributorsrc b/.all-contributorsrc.jinja similarity index 92% rename from .all-contributorsrc rename to .all-contributorsrc.jinja index 9a63a94..a130578 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc.jinja @@ -1,6 +1,6 @@ { "contributorsPerLine": 7, - "projectName": "project-template", + "projectName": "{{project_name}}", "projectOwner": "jolt-org", "repoType": "github", "repoHost": "https://github.com", diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst.jinja similarity index 90% rename from CONTRIBUTING.rst rename to CONTRIBUTING.rst.jinja index 3fd6f2f..f86da2c 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst.jinja @@ -17,7 +17,7 @@ Code contributions Workflow ++++++++ -1. `Fork <https://github.com/jolt-org/project-template/fork>`_ the `project-template repository <https://github.com/jolt-org/project-template>`_ +1. `Fork <https://github.com/jolt-org/{{project_name}}/fork>`_ the `{{project_name}} repository <https://github.com/jolt-org/{{project_name}}>`_ 2. Clone your fork locally with git 3. `Set up the environment <#setting-up-the-environment>`_ 4. Make your changes @@ -66,13 +66,13 @@ Then you can serve the documentation with ``make docs-serve``, or build them wit Creating a new release ---------------------- -1. Increment the version in `pyproject.toml <https://github.com/jolt-org/project-template/blob/main/pyproject.toml>`_. +1. Increment the version in `pyproject.toml <https://github.com/jolt-org/{{project_name}}/blob/main/pyproject.toml>`_. .. note:: The version should follow `semantic versioning <https://semver.org/>`_ and `PEP 440 <https://www.python.org/dev/peps/pep-0440/>`_. -2. `Draft a new release <https://github.com/jolt-org/project-template/releases/new>`_ on GitHub +2. `Draft a new release <https://github.com/jolt-org/{{project_name}}/releases/new>`_ on GitHub * Use ``vMAJOR.MINOR.PATCH`` (e.g. ``v1.2.3``) as both the tag and release title * Fill in the release description. You can use the "Generate release notes" function to get a draft for this 3. Commit your changes and push to ``main`` 4. Publish the release -5. Go to `Actions <https://github.com/jolt-org/project-template/actions>`_ and approve the release workflow +5. Go to `Actions <https://github.com/jolt-org/{{project_name}}/actions>`_ and approve the release workflow 6. Check that the workflow runs successfully diff --git a/Makefile b/Makefile.jinja similarity index 97% rename from Makefile rename to Makefile.jinja index 4470769..3d314fe 100644 --- a/Makefile +++ b/Makefile.jinja @@ -72,7 +72,7 @@ lint: ## Runs pre-commit hooks; includes ruff linting, codespell, bl .PHONY: coverage coverage: ## Run the tests and generate coverage report @echo "=> Running tests with coverage" - @$(ENV_PREFIX)pytest tests --cov=project-template + @$(ENV_PREFIX)pytest tests --cov={{module_name}} @$(ENV_PREFIX)coverage html @$(ENV_PREFIX)coverage xml @echo "=> Coverage report generated" @@ -110,7 +110,7 @@ docs-clean: ## Dump the existing built docs docs-serve: docs-clean ## Serve the docs locally @echo "=> Serving documentation" - $(ENV_PREFIX)sphinx-autobuild docs docs/_build/ -j auto --watch project-template --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002 + $(ENV_PREFIX)sphinx-autobuild docs docs/_build/ -j auto --watch {{module_name}} --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002 docs: docs-clean ## Dump the existing built docs and rebuild them @echo "=> Building documentation" diff --git a/README.md b/README.md.jinja similarity index 68% rename from README.md rename to README.md.jinja index 1b7496a..9698c16 100644 --- a/README.md +++ b/README.md.jinja @@ -1,11 +1,11 @@ -# project-template +# {{project_name}} <div align="center"> | Project | | Status | | --------- | :-- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| CI/CD | | [![Latest Release](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml) [![Tests And Linting](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml) | -| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=coverage)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) | +| CI/CD | | [![Latest Release](https://github.com/jolt-org/{{project_name}}/actions/workflows/publish.yaml/badge.svg)](https://github.com/jolt-org/{{project_name}}/actions/workflows/publish.yaml) [![Tests And Linting](https://github.com/jolt-org/{{project_name}}/actions/workflows/ci.yaml/badge.svg)](https://github.com/jolt-org/{{project_name}}/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/jolt-org/{{project_name}}/actions/workflows/docs.yaml/badge.svg)](https://github.com/jolt-org/{{project_name}}/actions/workflows/docs.yaml) | +| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=coverage)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) | | Community | | [![Discord](https://img.shields.io/discord/1149784127659319356?labelColor=F50057&color=202020&label=chat%20on%20discord&logo=discord&logoColor=202020)](https://discord.gg/XpFNTjjtTK) | | Meta | | [![Jolt Project](https://img.shields.io/badge/Jolt%20Org-%E2%AD%90-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/jolt-org/) [![types - Mypy](https://img.shields.io/badge/types-Mypy-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://spdx.org/licenses/) [![Jolt Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23202020.svg?&logo=github&logoColor=202020&labelColor=F50057)](https://github.com/sponsors/jolt-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=F50057)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=F50057&logoColor=202020)](https://github.com/psf/black) | @@ -18,15 +18,24 @@ any project that is a part of the Jolt organization. ## Usage -> [!IMPORTANT]\ -> -> - [Create a new repository][newrepo] using this template repository. -> - Run the [new_project.py](tools/new_project.py) script to initialize the project and set the project name. -> - Update the [README.md](README.md) file with the project-specific information. -> - (Optional if not using docs) Create the `$project-name-docs-preview` repository. -> - If the project does not utilize docs, remove the `.github/workflows/docs-preview.yaml`. -> - Remove any template-specific sections from the repos -> - Commit the changes and open the repo up for contributions! +- [Install copier](https://copier.readthedocs.io/en/stable/#installation) +- `$ copier copy gh:jolt-org/project-template $new-project-name` +- Answer questions. + +## New project checklist + +- [ ] Create the https://github.com/jolt-org/{{project_name}} repository. +- [ ] If using docs: Create the https://github.com/jolt-org/{{project_name}}-docs-preview repository. +- [ ] If not using docs: remove `.github/workflows/docs-preview.yaml`. +- [ ] Update the [README.md](README.md) file with the project-specific information. +- [ ] Initialize git repository: `$ git init` +- [ ] Stage the files: `$ git add ."` +- [ ] Install pre-commit hooks: `$ pre-commit install` +- [ ] Run pre-commit hooks: `$ pre-commit run --all-files` +- [ ] Stage any files that were modified by the pre-commit hooks: `$ git add .` +- [ ] Commit the changes: `$ git commit -m "Initial commit"` +- [ ] Add the remote: `$ git remote add origin git@github.com:jolt-org/{{project_name}}.git` +- [ ] Push the changes: `$ git push -u origin main` ## Contributing @@ -48,10 +57,10 @@ or the [project-specific GitHub discussions page][project-discussions]. </p> [jolt-org]: https://github.com/jolt-org -[contributing]: https://docs.project-template.jolt.rs/latest/contribution-guide.html +[contributing]: https://docs.{{project_name}}.jolt.rs/latest/contribution-guide.html [discord]: https://discord.gg/XpFNTjjtTK [jolt-discussions]: https://github.com/orgs/jolt-org/discussions -[project-discussions]: https://github.com/jolt-org/project-template/discussions -[project-docs]: https://docs.project-template.jolt.rs -[install-guide]: https://docs.project-template.jolt.rs/latest/#installation -[newrepo]: https://github.com/organizations/jolt-org/repositories/new?template=project-template +[project-discussions]: https://github.com/jolt-org/{{project_name}}/discussions +[project-docs]: https://docs.{{project_name}}.jolt.rs +[install-guide]: https://docs.{{project_name}}.jolt.rs/latest/#installation +[newrepo]: https://github.com/organizations/jolt-org/repositories/new?template={{project_name}} diff --git a/copier.yaml b/copier.yaml new file mode 100644 index 0000000..2aece11 --- /dev/null +++ b/copier.yaml @@ -0,0 +1,16 @@ +project_name: + type: str # Any value will be treated raw as a string + help: An awesome project needs an awesome name. Tell me yours. + validator: >- + {% if not (project_name | regex_search('^[a-z][a-z0-9\-]+$')) %} + project_name must start with a letter, followed one or more letters, digits or dashes all lowercase. + {% endif %} + +module_name: + type: str + help: The import name of the python module. + default: "{{ project_name|regex_replace('[^a-zA-A0-9]', '_') }}" + validator: >- + {% if not (module_name | regex_search('^[a-z][a-z0-9\_]+$')) %} + module_name must start with a letter, followed one or more letters, digits or underscores all lowercase. + {% endif %} diff --git a/docs/PYPI_README.md b/docs/PYPI_README.md deleted file mode 100644 index 597c581..0000000 --- a/docs/PYPI_README.md +++ /dev/null @@ -1,54 +0,0 @@ -# project-template - -<div align="center"> - -| Project | | Status | -| --------- | :-- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| CI/CD | | [![Latest Release](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/publish.yaml) [![Tests And Linting](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml/badge.svg)](https://github.com/jolt-org/project-template/actions/workflows/docs.yaml) | -| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=coverage)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_project-template&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_project-template) | -| Community | | [![Discord](https://img.shields.io/discord/1149784127659319356?labelColor=F50057&color=202020&label=chat%20on%20discord&logo=discord&logoColor=202020)](https://discord.gg/XpFNTjjtTK) | -| Meta | | [![Jolt Project](https://img.shields.io/badge/Jolt%20Org-%E2%AD%90-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/jolt-org/) [![types - Mypy](https://img.shields.io/badge/types-Mypy-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://spdx.org/licenses/) [![Jolt Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23202020.svg?&logo=github&logoColor=202020&labelColor=F50057)](https://github.com/sponsors/jolt-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=F50057)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=F50057&logoColor=202020)](https://github.com/psf/black) | - -</div> - -## About - -This project is a template repository for [Jolt][jolt-org] projects. It is designed to be a starting point for -any project that is a part of the Jolt organization. - -## Usage - -> [!IMPORTANT]\ -> -> - [Create a new repository][newrepo] using this template repository. -> - Run the [new_project.py](tools/new_project.py) script to initialize the project and set the project name. -> - Update the [README.md](README.md) file with the project-specific information. -> - (Optional if not using docs) Create the `$project-name-docs-preview` repository. -> - If the project does not utilize docs, remove the `.github/workflows/docs-preview.yaml`. -> - Remove any template-specific sections from the repos -> - Commit the changes and open the repo up for contributions! - -## Contributing - -All [Jolt][jolt-org] projects will always be a community-centered, available for contributions of any size. - -Before contributing, please review the [contribution guide][contributing]. - -If you have any questions, reach out to us on [Discord][discord], our org-wide [GitHub discussions][jolt-discussions] page, -or the [project-specific GitHub discussions page][project-discussions]. - -<hr> - -<!-- markdownlint-disable --> -<p align="center"> - <img src="https://raw.githubusercontent.com/jolt-org/branding/473f54621e55cde9acbb6fcab7fc03036173eb3d/assets/Branding%20-%20PNG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.png" alt="Litestar Logo - Light" width="100%" height="auto" /> -</p> - -[jolt-org]: https://github.com/jolt-org -[contributing]: https://docs.project-template.jolt.rs/latest/contribution-guide.html -[discord]: https://discord.gg/XpFNTjjtTK -[jolt-discussions]: https://github.com/orgs/jolt-org/discussions -[project-discussions]: https://github.com/jolt-org/project-template/discussions -[project-docs]: https://docs.project-template.jolt.rs -[install-guide]: https://docs.project-template.jolt.rs/latest/#installation -[newrepo]: https://github.com/organizations/jolt-org/repositories/new?template=project-template diff --git a/docs/conf.py b/docs/conf.py.jinja similarity index 89% rename from docs/conf.py rename to docs/conf.py.jinja index abbfe05..a6c0451 100644 --- a/docs/conf.py +++ b/docs/conf.py.jinja @@ -1,15 +1,15 @@ # Configuration file for the Sphinx documentation builder. import os -from project_template.__metadata__ import __project__ as project -from project_template.__metadata__ import __version__ as version +from {{module_name}}.__metadata__ import __project__ as project +from {{module_name}}.__metadata__ import __version__ as version # -- Environmental Data ------------------------------------------------------ # -- Project information ----------------------------------------------------- author = "Jolt Org" -release = os.getenv("_PROJECT-TEMPLATE_DOCS_BUILD_VERSION", version.rsplit(".")[0]) +release = os.getenv("_{{module_name|upper}}_DOCS_BUILD_VERSION", version.rsplit(".")[0]) copyright = "2023, Jolt Org" # -- General configuration --------------------------------------------------- @@ -20,7 +20,6 @@ "sphinx.ext.githubpages", "sphinx.ext.viewcode", "sphinx.ext.intersphinx", - "docs.fix_missing_references", "sphinx_copybutton", "sphinx.ext.todo", "sphinx.ext.viewcode", @@ -90,11 +89,11 @@ html_theme_options = { "logo_target": "/", "announcement": "This documentation is currently under development.", - "github_url": "https://github.com/jolt-org/project-template", + "github_url": "https://github.com/jolt-org/{{project_name}}", "nav_links": [ - {"title": "Home", "url": "https://project-template.jolt.rs"}, - {"title": "Docs", "url": "https://docs.project-template.jolt.rs"}, - {"title": "Code", "url": "https://github.com/jolt-org/project-template"}, + {"title": "Home", "url": "https://{{project_name}}.jolt.rs"}, + {"title": "Docs", "url": "https://docs.{{project_name}}.jolt.rs"}, + {"title": "Code", "url": "https://github.com/jolt-org/{{project_name}}"}, ], "light_css_variables": { # RGB diff --git a/pyproject.toml b/pyproject.toml.jinja similarity index 88% rename from pyproject.toml rename to pyproject.toml.jinja index 82c6e39..494129e 100644 --- a/pyproject.toml +++ b/pyproject.toml.jinja @@ -12,11 +12,11 @@ maintainers = [ {name = "Peter Schutt", email = "peter.github@proton.me"}, ] keywords = [ - "api", - "rest", - "asgi", - "litestar", - "project-template", + "programming", + "developer", + "tools", + "jolt-org", + "{{project_name}}", ] classifiers = [ "Development Status :: 3 - Alpha", @@ -35,21 +35,21 @@ classifiers = [ "Typing :: Typed", "Intended Audience :: Developers", ] -name = "project-template" +name = "{{project_name}}" version = "0.1.0" -description = "project-template is a Python template project designed to simplify the setup of a new project." +description = "{{project_name}} is a Python template project designed to simplify the setup of a new project." readme = "README.md" license = {text = "MIT"} requires-python = ">=3.8,<4.0" [project.urls] -"Issue Tracker" = "https://github.com/jolt-org/project-template/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc" -Changelog = "https://github.com/jolt-org/project-template/releases/" +"Issue Tracker" = "https://github.com/jolt-org/{{project_name}}/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc" +Changelog = "https://github.com/jolt-org/{{project_name}}/releases/" Discord = "https://discord.gg/XpFNTjjtTK" Blog = "https://blog.jolt.rs" homepage = "https://jolt.rs/" -repository = "https://github.com/jolt-org/project-template" -documentation = "https://docs.project-template.jolt.rs/" +repository = "https://github.com/jolt-org/{{project_name}}" +documentation = "https://docs.{{project_name}}.jolt.rs/" [build-system] build-backend = "hatchling.build" @@ -58,7 +58,7 @@ requires = ["hatchling"] [tool.pdm.scripts] lint = "pre-commit run --all-files" test = "pytest" -docs-serve = "sphinx-autobuild docs docs/_build/ -j auto --watch project-template --watch docs --watch tests --port 8002" +docs-serve = "sphinx-autobuild docs docs/_build/ -j auto --watch {{module_name}} --watch docs --watch tests --port 8002" ci = {composite = ["lint", "test"]} [tool.pdm.dev-dependencies] @@ -111,7 +111,7 @@ exclude_lines = [ asyncio_mode = "auto" [tool.pyright] -include = ["project_template"] +include = ["{{module_name}}"] exclude = ["tools"] [tool.slotscheck] @@ -149,7 +149,7 @@ ignore = [ "PLW2901" # pylint - for loop variable overwritten by assignment target ] line-length = 120 -src = ["project_template", "tests", "docs/examples"] +src = ["{{module_name}}", "tests", "docs/examples"] target-version = "py38" [tool.ruff.pydocstyle] @@ -164,7 +164,7 @@ classmethod-decorators = [ ] [tool.ruff.isort] -known-first-party = ["project-template", "tests", "examples"] +known-first-party = ["{{module_name}}", "tests", "examples"] [tool.ruff.per-file-ignores] "tests/**/*.*" = [ diff --git a/sonar-project.properties b/sonar-project.properties.jinja similarity index 71% rename from sonar-project.properties rename to sonar-project.properties.jinja index 053709e..a317de5 100644 --- a/sonar-project.properties +++ b/sonar-project.properties.jinja @@ -1,7 +1,7 @@ -sonar.projectKey=jolt-org_project-template +sonar.projectKey=jolt-org_{{project_name}} sonar.organization=jolt_org sonar.python.coverage.reportPaths=coverage.xml sonar.test.inclusions=tests/test_*.py -sonar.sources=project-template +sonar.sources={{project_name}} sonar.sourceEncoding=UTF-8 sonar.python.version=3.8, 3.9, 3.10, 3.11 diff --git a/tests/test_src.py b/tests/test_src.py.jinja similarity index 61% rename from tests/test_src.py rename to tests/test_src.py.jinja index e940da0..e6bd4db 100644 --- a/tests/test_src.py +++ b/tests/test_src.py.jinja @@ -1,4 +1,4 @@ -from project_template import return_three +from {{module_name}} import return_three def test_return_three() -> None: diff --git a/tools/build_docs.py b/tools/build_docs.py.jinja similarity index 94% rename from tools/build_docs.py rename to tools/build_docs.py.jinja index 5b00784..1de2b03 100644 --- a/tools/build_docs.py +++ b/tools/build_docs.py.jinja @@ -51,9 +51,9 @@ def load_version_spec() -> VersionSpec: def build(output_dir: str, version: str | None) -> None: if version is None: - version = importlib.metadata.version("litestar").rsplit(".")[0] + version = importlib.metadata.version("{{module_name}}").rsplit(".")[0] else: - os.environ["_LITESTAR_DOCS_BUILD_VERSION"] = version + os.environ["_{{module_name|upper}}_DOCS_BUILD_VERSION"] = version subprocess.run(["make", "docs"], check=True) # noqa: S603 S607 diff --git a/tools/new_project.py b/tools/new_project.py deleted file mode 100644 index fe913e8..0000000 --- a/tools/new_project.py +++ /dev/null @@ -1,41 +0,0 @@ -"""Script to replace occurrences of 'project-template' with new name in all files of a directory.""" - -import re -from pathlib import Path - -import click - - -def replace_template_name(directory: Path, new_name: str) -> None: - """Replaces occurrences of 'project-template' with new name in all files of a directory. - - Args: - directory (Path): The directory path to scan. - new_name (str): The new name to replace 'project-template' with. - """ - for file in directory.rglob("*"): - if file.is_file(): - with Path(file).open(encoding="utf-8", errors="ignore") as f: - content = f.read() - - new_content = re.sub(r"project-template", new_name, content) - - with Path(file).open("w", encoding="utf-8", errors="ignore") as f: - f.write(new_content) - - -@click.command(context_settings={"help_option_names": ["-h", "--help"]}) -@click.option("--name", "-n", type=str, required=True, help="The new project name.") -@click.option("--directory", "-d", type=Path, default=Path(), help="The directory to scan.") -def main(name: str, directory: Path) -> None: - """Rename a template project to a new project name. - - Args: - name (str): The new project name. - directory (Path): The directory to scan. - """ - replace_template_name(directory, name) - - -if __name__ == "__main__": - main() diff --git a/tools/sphinx_ext/changelog.py b/tools/sphinx_ext/changelog.py.jinja similarity index 98% rename from tools/sphinx_ext/changelog.py rename to tools/sphinx_ext/changelog.py.jinja index e4fc9ea..1bfd920 100644 --- a/tools/sphinx_ext/changelog.py +++ b/tools/sphinx_ext/changelog.py.jinja @@ -11,7 +11,7 @@ if TYPE_CHECKING: from sphinx.application import Sphinx -_GH_BASE_URL = "https://github.com/jolt-org/litestar" +_GH_BASE_URL = "https://github.com/jolt-org/{{project_name}}" def _parse_gh_reference(raw: str, type_: Literal["issues", "pull"]) -> list[str]: diff --git a/.github/CODEOWNERS b/{% if true %}.github{% endif %}/CODEOWNERS similarity index 100% rename from .github/CODEOWNERS rename to {% if true %}.github{% endif %}/CODEOWNERS diff --git a/.github/workflows/cd.yaml b/{% if true %}.github{% endif %}/workflows/cd.yaml similarity index 100% rename from .github/workflows/cd.yaml rename to {% if true %}.github{% endif %}/workflows/cd.yaml diff --git a/.github/workflows/ci.yaml b/{% if true %}.github{% endif %}/workflows/ci.yaml similarity index 100% rename from .github/workflows/ci.yaml rename to {% if true %}.github{% endif %}/workflows/ci.yaml diff --git a/.github/workflows/docs-preview.yaml b/{% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja similarity index 86% rename from .github/workflows/docs-preview.yaml rename to {% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja index 62aa82f..a4eb066 100644 --- a/.github/workflows/docs-preview.yaml +++ b/{% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja @@ -7,7 +7,9 @@ on: jobs: deploy: + {% raw %} if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' }} + {% endraw %} runs-on: ubuntu-latest permissions: issues: write @@ -21,7 +23,9 @@ jobs: uses: dawidd6/action-download-artifact@v2 with: workflow_conclusion: success + {% raw %} run_id: ${{ github.event.workflow_run.id }} + {% endraw %} path: docs-preview name: docs-preview @@ -32,19 +36,25 @@ jobs: uses: JamesIves/github-pages-deploy-action@v4 with: folder: docs-preview/docs/_build/html + {% raw %} token: ${{ secrets.DOCS_PREVIEW_DEPLOY_TOKEN }} - repository-name: jolt-org/project-template-docs-preview + {% endraw %} + repository-name: jolt-org/{{project_name}}-docs-preview clean: false + {% raw %} target-folder: ${{ env.PR_NUMBER }} + {% endraw %} branch: gh-pages - uses: actions/github-script@v6 env: + {% raw %} PR_NUMBER: ${{ env.PR_NUMBER }} + {% endraw %} with: script: | const issue_number = process.env.PR_NUMBER - const body = "Documentation preview will be available shortly at https://jolt-org.github.io/project-template-docs-preview/" + issue_number + const body = "Documentation preview will be available shortly at https://jolt-org.github.io/{{project_name}}-docs-preview/" + issue_number const opts = github.rest.issues.listComments.endpoint.merge({ owner: context.repo.owner, diff --git a/.github/workflows/docs.yaml b/{% if true %}.github{% endif %}/workflows/docs.yaml similarity index 100% rename from .github/workflows/docs.yaml rename to {% if true %}.github{% endif %}/workflows/docs.yaml diff --git a/.github/workflows/pr-title.yaml b/{% if true %}.github{% endif %}/workflows/pr-title.yaml similarity index 100% rename from .github/workflows/pr-title.yaml rename to {% if true %}.github{% endif %}/workflows/pr-title.yaml diff --git a/.github/workflows/publish.yaml b/{% if true %}.github{% endif %}/workflows/publish.yaml similarity index 100% rename from .github/workflows/publish.yaml rename to {% if true %}.github{% endif %}/workflows/publish.yaml diff --git a/project_template/__init__.py b/{{module_name}}/__init__.py similarity index 100% rename from project_template/__init__.py rename to {{module_name}}/__init__.py diff --git a/project_template/__metadata__.py b/{{module_name}}/__metadata__.py.jinja similarity index 61% rename from project_template/__metadata__.py rename to {{module_name}}/__metadata__.py.jinja index 7ae2192..62a3ef0 100644 --- a/project_template/__metadata__.py +++ b/{{module_name}}/__metadata__.py.jinja @@ -5,7 +5,7 @@ __all__ = ["__version__", "__project__"] -__version__ = importlib.metadata.version("project-template") +__version__ = importlib.metadata.version("{{project_name}}") """Version of the project.""" -__project__ = importlib.metadata.metadata("project-template")["Name"] +__project__ = importlib.metadata.metadata("{{project_name}}")["Name"] """Name of the project.""" From 4be97c510eda6021be8db2ec9971240eba8b77a0 Mon Sep 17 00:00:00 2001 From: Peter Schutt <peter.github@proton.me> Date: Fri, 19 Apr 2024 18:03:08 +1000 Subject: [PATCH 6/6] refactor: the litestar treatment --- .all-contributorsrc.jinja | 2 +- .pre-commit-config.yaml | 53 +-- CONTRIBUTING.rst.jinja | 355 ++++++++++++-- LICENSE | 2 +- Makefile.jinja | 250 ++++++---- README.md.jinja | 43 +- codecov.yml | 11 + docs/_static/css/custom.css | 66 --- docs/_static/logo.png | Bin 296255 -> 0 bytes docs/_static/style.css | 35 ++ docs/_static/versioning.js | 104 ++++ docs/_static/versions.json | 1 + docs/conf.py.jinja | 158 ++++--- pyproject.toml.jinja | 292 +++++++----- sonar-project.properties.jinja | 11 +- tools/prepare_release.py | 444 ++++++++++++++++++ tools/pypi_readme.py | 2 +- tools/sphinx_ext/changelog.py.jinja | 2 +- {% if true %}.github{% endif %}/CODEOWNERS | 7 +- .../ISSUE_TEMPLATE/BUG.yml | 84 ++++ .../ISSUE_TEMPLATE/DOCS.yml | 14 + .../ISSUE_TEMPLATE/REQUEST.yml | 38 ++ .../ISSUE_TEMPLATE/config.yml | 11 + .../PULL_REQUEST_TEMPLATE.md | 18 + .../dependabot.yml | 6 + {% if true %}.github{% endif %}/labeler.yml | 306 ++++++++++++ .../get_closed_issues.py | 38 ++ .../notify_released_issues/notify.js | 34 ++ .../workflows/ci.yml | 354 ++++++++++++++ .../workflows/codeql.yml | 18 + .../workflows/docs-preview.yaml.jinja | 4 +- .../workflows/docs-preview.yml | 71 +++ .../workflows/docs.yml | 58 +++ .../workflows/notify-released-issues.yml | 32 ++ .../get_closed_issues.py | 38 ++ .../notify_released_issues/notify.js | 34 ++ .../workflows/pr-labeler.yml | 50 ++ .../workflows/pr-merged.yml | 53 +++ .../workflows/pr-title.yml | 20 + .../workflows/publish.yml | 41 ++ .../workflows/test.yml | 69 +++ 41 files changed, 2748 insertions(+), 481 deletions(-) create mode 100644 codecov.yml delete mode 100644 docs/_static/css/custom.css delete mode 100644 docs/_static/logo.png create mode 100644 docs/_static/style.css create mode 100644 docs/_static/versioning.js create mode 100644 docs/_static/versions.json create mode 100644 tools/prepare_release.py create mode 100644 {% if true %}.github{% endif %}/ISSUE_TEMPLATE/BUG.yml create mode 100644 {% if true %}.github{% endif %}/ISSUE_TEMPLATE/DOCS.yml create mode 100644 {% if true %}.github{% endif %}/ISSUE_TEMPLATE/REQUEST.yml create mode 100644 {% if true %}.github{% endif %}/ISSUE_TEMPLATE/config.yml create mode 100644 {% if true %}.github{% endif %}/PULL_REQUEST_TEMPLATE.md create mode 100644 {% if true %}.github{% endif %}/dependabot.yml create mode 100644 {% if true %}.github{% endif %}/labeler.yml create mode 100644 {% if true %}.github{% endif %}/notify_released_issues/get_closed_issues.py create mode 100644 {% if true %}.github{% endif %}/notify_released_issues/notify.js create mode 100644 {% if true %}.github{% endif %}/workflows/ci.yml create mode 100644 {% if true %}.github{% endif %}/workflows/codeql.yml create mode 100644 {% if true %}.github{% endif %}/workflows/docs-preview.yml create mode 100644 {% if true %}.github{% endif %}/workflows/docs.yml create mode 100644 {% if true %}.github{% endif %}/workflows/notify-released-issues.yml create mode 100644 {% if true %}.github{% endif %}/workflows/notify_released_issues/get_closed_issues.py create mode 100644 {% if true %}.github{% endif %}/workflows/notify_released_issues/notify.js create mode 100644 {% if true %}.github{% endif %}/workflows/pr-labeler.yml create mode 100644 {% if true %}.github{% endif %}/workflows/pr-merged.yml create mode 100644 {% if true %}.github{% endif %}/workflows/pr-title.yml create mode 100644 {% if true %}.github{% endif %}/workflows/publish.yml create mode 100644 {% if true %}.github{% endif %}/workflows/test.yml diff --git a/.all-contributorsrc.jinja b/.all-contributorsrc.jinja index a130578..bcc78a7 100644 --- a/.all-contributorsrc.jinja +++ b/.all-contributorsrc.jinja @@ -1,7 +1,7 @@ { "contributorsPerLine": 7, "projectName": "{{project_name}}", - "projectOwner": "jolt-org", + "projectOwner": "litestar-org", "repoType": "github", "repoHost": "https://github.com", "commitConvention": "angular", diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 278c3a8..b327756 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,68 +1,49 @@ default_language_version: - python: "3.11" + python: "3.8" repos: - repo: https://github.com/compilerla/conventional-pre-commit - rev: v2.4.0 + rev: v3.2.0 hooks: - id: conventional-pre-commit stages: [commit-msg] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.6.0 hooks: - id: check-ast - id: check-case-conflict - id: check-toml - id: debug-statements + exclude: "litestar/middleware/exceptions/middleware.py" - id: end-of-file-fixer - id: mixed-line-ending - id: trailing-whitespace - - repo: https://github.com/pdm-project/pdm - rev: 2.9.2 + exclude: "tests/unit/test_openapi/test_typescript_converter/test_converter.py" + - repo: https://github.com/provinzkraut/unasyncd + rev: "v0.7.1" hooks: - - id: pdm-lock-check + - id: unasyncd + additional_dependencies: ["ruff"] - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: "v0.0.290" + rev: "v0.3.5" hooks: - id: ruff args: ["--fix"] + - id: ruff-format - repo: https://github.com/codespell-project/codespell - rev: v2.2.5 + rev: v2.2.6 hooks: - id: codespell - exclude: "tests/openapi/typescript_converter/test_converter" - - repo: https://github.com/psf/black - rev: 23.9.1 - hooks: - - id: black - args: [--config=./pyproject.toml] - - repo: https://github.com/asottile/blacken-docs - rev: 1.16.0 - hooks: - - id: blacken-docs - - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v3.0.3" - hooks: - - id: prettier - exclude: "_templates|.git|.all-contributorsrc" + exclude: "tests/openapi/typescript_converter/test_converter|README.md" + additional_dependencies: + - tomli - repo: https://github.com/python-formate/flake8-dunder-all - rev: v0.3.0 + rev: v0.4.1 hooks: - id: ensure-dunder-all exclude: "test*|examples*|tools" args: ["--use-tuple"] - - repo: https://github.com/ariebovenberg/slotscheck - rev: v0.17.0 - hooks: - - id: slotscheck - exclude: "test_*|docs" - - repo: https://github.com/pre-commit/mirrors-mypy - rev: "v1.5.1" - hooks: - - id: mypy - exclude: "tools|docs" - additional_dependencies: [pytest] - repo: https://github.com/sphinx-contrib/sphinx-lint - rev: "v0.6.8" + rev: "v0.9.1" hooks: - id: sphinx-lint - repo: local diff --git a/CONTRIBUTING.rst.jinja b/CONTRIBUTING.rst.jinja index f86da2c..42abdce 100644 --- a/CONTRIBUTING.rst.jinja +++ b/CONTRIBUTING.rst.jinja @@ -1,15 +1,132 @@ -Contribution guide +Contribution Guide ================== +.. _pipx: https://pypa.github.io/pipx/ +.. |pipx| replace:: `pipx <https://pypa.github.io/pipx/>`__ + +.. _homebrew: https://brew.sh/ +.. |homebrew| replace:: `Homebrew <https://brew.sh/>`__ + + +Getting Started +--------------- + +Supported Python Versions ++++++++++++++++++++++++++ + +The lowest currently supported version is Python 3.8. +At a minimum you will need Python 3.8 for code changes and 3.12 if you plan on doing documentation building / changes. + +You can use various tools to manage multiple Python versions on your system including: + +* `pyenv <https://github.com/pyenv/pyenv>`_ and `pyenv-win for Windows <https://github.com/pyenv-win/pyenv-win>`_ +* `rtx / mise <https://mise.jdx.dev/>`_ +* `asdf <https://asdf-vm.com/>`_ +* `Building each version manually from source <https://www.build-python-from-source.com/>`_ +* Utilizing `GitHub Codespaces <https://codespaces.new/litestar-org/{{ project_name }}?quickstart=1>`_ + +We use the lowest supported version in our type-checking CI, +this ensures that the changes you made are backward compatible. + Setting up the environment --------------------------- +++++++++++++++++++++++++++ + +.. tip:: We maintain a Makefile with several commands to help with common tasks. +You can run ``make help`` to see a list of available commands. + +If you are utilizing `GitHub Codespaces <https://codespaces.new/litestar-org/{{ project_name }}?quickstart=1>`_, +the environment will bootstrap itself automatically. The steps below are for local development. + +#. Install `PDM <https://pdm.fming.dev/latest/>`_: + +.. tab-set:: + +.. tab-item:: Makefile +:sync: makefile + +.. code-block:: bash +:caption: Using our Make target to install PDM + +make install-pdm + +.. tab-item:: pipx +:sync: pipx + +.. code-block:: bash +:caption: Using |pipx| + +pipx install pdm + +.. tab-item:: Homebrew +:sync: homebrew + +.. code-block:: bash +:caption: Using |homebrew| + +brew install pdm + +#. Run ``make install`` to create a `virtual environment <https://docs.python.org/3/tutorial/venv.html>`_ +and install the required development dependencies or run the PDM installation command manually: + +.. code-block:: shell +:caption: Installing the documentation dependencies + +pdm install + +#. If you're working on the documentation and need to build it locally, install the extra dependencies with +``make docs-install`` or: + +.. code-block:: shell +:caption: Installing the documentation dependencies + +pdm install -G:docs + +#. Install `pre-commit <https://pre-commit.com/>`_: + +.. tab-set:: + +.. tab-item:: pip +:sync: pip + +.. code-block:: bash +:caption: Using pip + +python3 -m pip install pre-commit + +.. tab-item:: pipx +:sync: pipx + +.. code-block:: bash +:caption: Using |pipx| + +pipx install pre-commit + +.. tab-item:: Homebrew +:sync: homebrew + +.. code-block:: bash +:caption: Using |homebrew| + +brew install pre-commit + +#. Install our pre-commit hooks. by running ``make install`` or: + +.. code-block:: shell +:caption: Installing pre-commit hooks + +pre-commit install --install-hooks + +.. tip:: Many modern IDEs like PyCharm or VS Code will enable the PDM-managed virtualenv that is created in step 2 +for you automatically. +If your IDE / editor does not offer this functionality, then you will need to manually activate the virtualenv +yourself. Otherwise you may encounter errors or unexpected behaviour when trying to run the commands referenced +within this document. -1. Install `Pizza Delivery Man <https://pdm.fming.dev/latest/>`_ -2. Run ``pdm install -G:all`` to create a `virtual environment <https://docs.python.org/3/tutorial/venv.html>`_ and install - the dependencies -3. If you're working on the documentation and need to build it locally, install the extra dependencies with ``pdm install -G:docs`` -4. Install `pre-commit <https://pre-commit.com/>`_ -5. Run ``pre-commit install`` to install pre-commit hooks +To activate the virtualenv manually, please consult PDM's documentation on +`working with virtual environments <https://pdm-project.org/latest/usage/venv/#working-with-virtual-environments>`_. +A simpler alternative is using the PDM plugin `pdm-shell <https://github.com/abersheeran/pdm-shell>`_. + +The rest of this document will assume this environment is active wherever commands are referenced. Code contributions ------------------ @@ -17,62 +134,202 @@ Code contributions Workflow ++++++++ -1. `Fork <https://github.com/jolt-org/{{project_name}}/fork>`_ the `{{project_name}} repository <https://github.com/jolt-org/{{project_name}}>`_ -2. Clone your fork locally with git -3. `Set up the environment <#setting-up-the-environment>`_ -4. Make your changes -5. (Optional) Run ``pre-commit run --all-files`` to run linters and formatters. This step is optional and will be executed - automatically by git before you make a commit, but you may want to run it manually in order to apply fixes -6. Commit your changes to git -7. Push the changes to your fork -8. Open a `pull request <https://docs.github.com/en/pull-requests>`_. Give the pull request a descriptive title - indicating what it changes. If it has a corresponding open issue, the issue number should be included in the title as - well. For example a pull request that fixes issue ``bug: Increased stack size making it impossible to find needle #100`` - could be titled ``fix(#100): Make needles easier to find by applying fire to haystack`` - -.. tip:: Pull requests and commits all need to follow the - `Conventional Commit format <https://www.conventionalcommits.org>`_ +#. `Fork <https://github.com/litestar-org/{{ project_name }}/fork>`_ the `{{ project_name|title }} repository <https://github.com/litestar-org/{{ project_name }}>`_ +#. Clone your fork locally with git +#. `Set up the environment <#setting-up-the-environment>`_ +#. Make your changes +#. (Optional) Run ``pre-commit run --all-files`` to run linters and formatters. This step is optional and will be executed +automatically by git before you make a commit, but you may want to run it manually in order to apply fixes +#. Commit your changes to git. We follow `conventional commits <https://www.conventionalcommits.org/>`_ +which are enforced using a ``pre-commit`` hook. +#. Push the changes to your fork +#. Open a `pull request <https://docs.github.com/en/pull-requests>`_. Give the pull request a descriptive title +indicating what it changes. The style of the PR title should also follow +`conventional commits <https://www.conventionalcommits.org/>`_, and this is enforced using a GitHub action. +#. Add yourself as a contributor using the `all-contributors bot <https://allcontributors.org/docs/en/bot/usage>`_ Guidelines for writing code ---------------------------- +- Code should be `Pythonic and zen <https://peps.python.org/pep-0020/>`_ - All code should be fully `typed <https://peps.python.org/pep-0484/>`_. This is enforced via - `mypy <https://mypy.readthedocs.io/en/stable/>`_. -- All code should be tested. This is enforced via `pytest <https://docs.pytest.org/en/stable/>`_. -- All code should be properly formatted. This is enforced via `black <https://black.readthedocs.io/en/stable/>`_ and `Ruff <https://beta.ruff.rs/docs/>`_. +`mypy <https://mypy.readthedocs.io/en/stable/>`_ and `Pyright <https://github.com/microsoft/pyright/>`_ + +* When requiring complex types, use a `type alias <https://docs.python.org/3/library/typing.html#type-aliases>`_. +Check :doc:`reference/types` if a type alias for your use case already exists +* If something cannot be typed correctly due to a limitation of the type checkers, you may use :func:`typing.cast` +to rectify the situation. However, you should only use this as a last resort if you've exhausted all other options +of `type narrowing <https://mypy.readthedocs.io/en/stable/type_narrowing.html>`_, such as :func:`isinstance` checks +and `type guards <https://docs.python.org/3/library/typing.html#typing.TypeGuard>`_. +* You may use a properly scoped ``type: ignore`` if you ensured that a line is correct, but mypy / pyright has +issues with it. + +Properly scoped meaning do not use blank ``type: ignore``, instead supply the specific error code, e.g., +``type: ignore[attr-defined]`` + +- If you are adding or modifying existing code, ensure that it's fully tested. 100% test coverage is mandatory, and will +be checked on the PR using `SonarCloud <https://www.sonarsource.com/products/sonarcloud/>`_ and +`Codecov <https://codecov.io/>`_ +- All functions, methods, classes, and attributes should be documented with a docstring. We use the +`Google docstring style <https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html>`_. If you come +across a function or method that doesn't conform to this standard, please update it as you go +- When adding a new public interface, it has to be included in the reference documentation located in +``docs/reference``. If applicable, add or modify examples in the docs related to the new functionality implemented, +following the guidelines established in `Adding examples`_. Writing and running tests +++++++++++++++++++++++++ -.. todo:: Write this section +Tests are contained within the ``tests`` directory, and follow the same directory structure as the ``{{ module_name }}`` module. +If you are adding a test case, it should be located within the correct submodule of ``tests``. + +The ``Makefile`` includes several commands for running tests: + +- ``make test`` to run tests located in ``tests`` +- ``make test-examples`` to run tests located in ``docs/examples/tests`` +- ``make test-all`` to run all tests +- ``make coverage`` to run tests with coverage and generate an html report + + Running type checkers + +++++++++++++++++++++ + + We use `mypy <https://mypy.readthedocs.io/en/stable/>`_ and `pyright <https://github.com/microsoft/pyright/>`_ to + enforce type safety. You can run them with: + + - ``make mypy`` + - ``make pyright`` + - ``make type-check`` to run both + - ``make lint`` to run pre-commit hooks and type checkers. + + Our type checkers are run on Python 3.8 in CI, so you should make sure to run them on the same version locally as well. + + Project documentation + --------------------- + + The documentation is located in the ``/docs`` directory and is written in + `reStructuredText <https://docutils.sourceforge.io/rst.html>`_ with the `Sphinx <https://www.sphinx-doc.org/en/master/>`_. + library. If you're unfamiliar with any of those, + `reStructuredText primer <https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_ and + `Sphinx quickstart <https://www.sphinx-doc.org/en/master/usage/quickstart.html>`_ are recommended reads. + + Docs theme and appearance + +++++++++++++++++++++++++ + + We welcome contributions that enhance / improve the appearance and usability of the docs. We use the excellent + `PyData Sphinx Theme <https://pydata-sphinx-theme.readthedocs.io/>`_ theme, which comes with a lot of options out of the box. + If you wish to contribute to the docs style / setup, or static site generation, you should consult the theme docs + as a first step. + + Running the docs locally + ++++++++++++++++++++++++ + + To run or build the docs locally, you need to first install the required dependencies: + + .. code-block:: shell + :caption: Installing the documentation dependencies + + pdm install -G:docs + + Then you can serve the documentation with our helpful Makefile targets: + + .. code-block:: shell + :caption: Serving the documentation locally + + make docs-serve + + Writing and editing docs + ++++++++++++++++++++++++ + + We welcome contributions that enhance / improve the content of the docs. Feel free to add examples, clarify text, + restructure the docs, etc., but make sure to follow these guidelines: + + - Write text in idiomatic English, using simple language + - Do not use contractions for ease of reading for non-native English speakers + - Opt for `Oxford commas <https://en.wikipedia.org/wiki/Serial_comma>`_ when listing a series of terms + - Keep examples simple and self contained (see `Adding examples`_). This is to ensure they are tested + alongside the rest of the test suite and properly type checked and linted. + - Provide links where applicable. + - Use `intersphinx <https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html>`_ wherever possible when + referencing external libraries + - Provide diagrams using `Mermaid <https://mermaid.js.org/>`_ where applicable and possible + + Adding examples + ~~~~~~~~~~~~~~~ + + The examples from the docs are located in their own modules inside the ``/docs/examples`` folder. This makes it easier + to test them alongside the rest of the test suite, ensuring they do not become stale as Litestar evolves. + + Please follow the next guidelines when adding a new example: + + - Add the example in the corresponding module directory in ``/docs/examples`` or create a new one if necessary + - Create a suite for the module in ``/docs/examples/tests`` that tests the aspects of the example that it demonstrates + - Reference the example in the rst file with an external reference code block, e.g. + + .. code-block:: rst + :caption: An example of how to use literal includes of external files + + .. literalinclude:: /examples/test_thing.py + :caption: All includes should have a descriptive caption + + Creating a New Release + ---------------------- + + #. Checkout the ``main`` branch: + + .. code-block:: shell + :caption: Checking out the main branch of the ``{{ project_name }}`` repository + + git checkout main + + #. Run the release preparation script: + + .. code-block:: shell + :caption: Preparing a new release + + python tools/prepare_release.py <new version number> --update-version --create-draft-release + + Replace ``<new version number>`` with the desired version number following the + `versioning scheme <https://litestar.dev/about/litestar-releases#version-numbering>`_. + + This script will: + + - Update the version in ``pyproject.toml`` + - Generate a changelog entry in :doc:`/release-notes/changelog` + - Create a draft release on GitHub + + #. Review the generated changelog entry in :doc:`/release-notes/changelog` to ensure it looks correct. + + #. Commit the changes to ``main``: + + .. code-block:: shell + :caption: Committing the changes to the main branch + + git commit -am "chore(release): prepare release vX.Y.Z" -Project documentation ---------------------- + Replace ``vX.Y.Z`` with the actual version number. -The documentation is located in the ``/docs`` directory and is `ReST <https://docutils.sourceforge.io/rst.html>`_ and -`Sphinx <https://www.sphinx-doc.org/en/master/>`_. If you're unfamiliar with any of those, -`ReStructuredText primer <https://www.sphinx-doc.org/en/master/lib/usage/restructuredtext/basics.html>`_ and -`Sphinx quickstart <https://www.sphinx-doc.org/en/master/lib/usage/quickstart.html>`_ are recommended reads. + #. Create a new branch for the release: -Running the docs locally -++++++++++++++++++++++++ + .. code-block:: shell + :caption: Creating a new branch for the release -To run or build the docs locally, you need to first install the required dependencies: + git checkout -b vX.Y.Z -``pdm install -G:docs`` + #. Push the changes to a ``vX.Y.Z`` branch: -Then you can serve the documentation with ``make docs-serve``, or build them with ``make docs``. + .. code-block:: shell + :caption: Pushing the changes to the ``vX.Y.Z`` branch -Creating a new release ----------------------- + git push origin vX.Y.Z -1. Increment the version in `pyproject.toml <https://github.com/jolt-org/{{project_name}}/blob/main/pyproject.toml>`_. - .. note:: The version should follow `semantic versioning <https://semver.org/>`_ and `PEP 440 <https://www.python.org/dev/peps/pep-0440/>`_. -2. `Draft a new release <https://github.com/jolt-org/{{project_name}}/releases/new>`_ on GitHub + #. Open a pull request from the ``vX.Y.Z`` branch to ``main``. + #. Once the pull request is approved, go to the draft release on GitHub + (the release preparation script will provide a link). + #. Review the release notes in the draft release to ensure they look correct. + #. If everything looks good, click "Publish release" to make the release official. + #. Go to the `Release Action <https://github.com/litestar-org/{{ project_name }}/actions/workflows/publish.yml>`_ and approve + the release workflow if necessary. + #. Check that the release workflow runs successfully. - * Use ``vMAJOR.MINOR.PATCH`` (e.g. ``v1.2.3``) as both the tag and release title - * Fill in the release description. You can use the "Generate release notes" function to get a draft for this -3. Commit your changes and push to ``main`` -4. Publish the release -5. Go to `Actions <https://github.com/jolt-org/{{project_name}}/actions>`_ and approve the release workflow -6. Check that the workflow runs successfully + .. note:: The version number should follow `semantic versioning <https://semver.org/>`_ and + `PEP 440 <https://peps.python.org/pep-0440/>`_. diff --git a/LICENSE b/LICENSE index e93b168..dde9b09 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2023 Jolt Org. +Copyright (c) 2024 Litestar Org. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile.jinja b/Makefile.jinja index 3d314fe..991a61c 100644 --- a/Makefile.jinja +++ b/Makefile.jinja @@ -6,7 +6,7 @@ SHELL := /bin/bash .DEFAULT_GOAL:=help .ONESHELL: USING_PDM = $(shell grep "tool.pdm" pyproject.toml && echo "yes") -ENV_PREFIX = $(shell python3 -c "if __import__('pathlib').Path('.venv/bin/pip').exists(): print('.venv/bin/')") +ENV_PREFIX = .venv/bin/ VENV_EXISTS = $(shell python3 -c "if __import__('pathlib').Path('.venv/bin/activate').exists(): print('yes')") PDM_OPTS ?= PDM ?= pdm $(PDM_OPTS) @@ -16,102 +16,152 @@ PDM ?= pdm $(PDM_OPTS) .PHONY: help help: ## Display this help text for Makefile - @awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) - -.PHONY: upgrade -upgrade: ## Upgrade all dependencies to the latest stable versions - @echo "=> Updating all dependencies" - @if [ "$(USING_PDM)" ]; then $(PDM) update; fi - @echo "=> Dependencies Updated" - @$(ENV_PREFIX)pre-commit autoupdate - @echo "=> Updated Pre-commit" - -# ============================================================================= -# Developer Utils -# ============================================================================= -.PHONY: install-pdm -install-pdm: ## Install latest version of PDM - @curl -sSLO https://pdm.fming.dev/install-pdm.py && \ - curl -sSL https://pdm.fming.dev/install-pdm.py.sha256 | shasum -a 256 -c - && \ - python3 install-pdm.py - -install: ## Install the project and - @if ! $(PDM) --version > /dev/null; then echo '=> Installing PDM'; $(MAKE) install-pdm; fi - @if [ "$(VENV_EXISTS)" ]; then echo "=> Removing existing virtual environment"; fi - if [ "$(VENV_EXISTS)" ]; then $(MAKE) destroy; fi - if [ "$(VENV_EXISTS)" ]; then $(MAKE) clean; fi - @if [ "$(USING_PDM)" ]; then $(PDM) config venv.in_project true && python3 -m venv --copies .venv && . $(ENV_PREFIX)/activate && $(ENV_PREFIX)/pip install --quiet -U wheel setuptools cython pip; fi - @if [ "$(USING_PDM)" ]; then $(PDM) install -G:all; fi - @echo "=> Install complete! Note: If you want to re-install re-run 'make install'" - -clean: ## Cleanup temporary build artifacts - @echo "=> Cleaning working directory" - @rm -rf .pytest_cache .ruff_cache .hypothesis build/ -rf dist/ .eggs/ - @find . -name '*.egg-info' -exec rm -rf {} + - @find . -name '*.egg' -exec rm -f {} + - @find . -name '*.pyc' -exec rm -f {} + - @find . -name '*.pyo' -exec rm -f {} + - @find . -name '*~' -exec rm -f {} + - @find . -name '__pycache__' -exec rm -rf {} + - @find . -name '.ipynb_checkpoints' -exec rm -rf {} + - @rm -rf .coverage coverage.xml coverage.json htmlcov/ .pytest_cache tests/.pytest_cache tests/**/.pytest_cache .mypy_cache - $(MAKE) docs-clean - -destroy: ## Destroy the virtual environment - @rm -rf .venv - -# ============================================================================= -# Tests, Linting, Coverage -# ============================================================================= -.PHONY: lint -lint: ## Runs pre-commit hooks; includes ruff linting, codespell, black - @echo "=> Running pre-commit process" - @$(ENV_PREFIX)pre-commit run --all-files - @echo "=> Pre-commit complete" - -.PHONY: coverage -coverage: ## Run the tests and generate coverage report - @echo "=> Running tests with coverage" - @$(ENV_PREFIX)pytest tests --cov={{module_name}} - @$(ENV_PREFIX)coverage html - @$(ENV_PREFIX)coverage xml - @echo "=> Coverage report generated" - -.PHONY: test -test: ## Run the tests - @echo "=> Running test cases" - @$(ENV_PREFIX)pytest tests - @echo "=> Tests complete" - -.PHONY: test-examples -test-examples: ## Run the examples tests - pytest docs/examples - -.PHONY: test-all -test-all: test test-examples ## Run all tests - - -.PHONY: check-all -check-all: lint test-all coverage ## Run all linting, tests, and coverage checks - -# ============================================================================= -# Docs -# ============================================================================= -.PHONY: docs-install -docs-install: ## Install docs dependencies - @echo "=> Installing documentation dependencies" - @$(PDM) install --group docs - @echo "=> Installed documentation dependencies" - -docs-clean: ## Dump the existing built docs - @echo "=> Cleaning documentation build assets" - @rm -rf docs/_build - @echo "=> Removed existing documentation build assets" - -docs-serve: docs-clean ## Serve the docs locally - @echo "=> Serving documentation" - $(ENV_PREFIX)sphinx-autobuild docs docs/_build/ -j auto --watch {{module_name}} --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002 - -docs: docs-clean ## Dump the existing built docs and rebuild them - @echo "=> Building documentation" - @$(ENV_PREFIX)sphinx-build -M html docs docs/_build/ -E -a -j auto --keep-going +@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) + + .PHONY: upgrade + upgrade: ## Upgrade all dependencies to the latest stable versions + @echo "=> Updating all dependencies" + @if [ "$(USING_PDM)" ]; then $(PDM) update; fi + @echo "=> Dependencies Updated" + @$(PDM) run pre-commit autoupdate + @echo "=> Updated Pre-commit" + + # ============================================================================= + # Developer Utils + # ============================================================================= + .PHONY: install-pdm + install-pdm: ## Install latest version of PDM + @curl -sSLO https://pdm.fming.dev/install-pdm.py && \ + curl -sSL https://pdm.fming.dev/install-pdm.py.sha256 | shasum -a 256 -c - && \ + python3 install-pdm.py && \ + rm install-pdm.py + + .PHONY: install + install: clean ## Install the project, dependencies, and pre-commit for local development + @if ! $(PDM) --version > /dev/null; then echo '=> Installing PDM'; $(MAKE) install-pdm; fi + @if [ "$(VENV_EXISTS)" ]; then echo "=> Removing existing virtual environment"; fi + if [ "$(VENV_EXISTS)" ]; then $(MAKE) destroy; fi + if [ "$(VENV_EXISTS)" ]; then $(MAKE) clean; fi + @if [ "$(USING_PDM)" ]; then $(PDM) config --local venv.in_project true && python3 -m venv --copies .venv && . $(ENV_PREFIX)/activate && $(ENV_PREFIX)/pip install --quiet -U wheel setuptools cython mypy pip; fi + @if [ "$(USING_PDM)" ]; then $(PDM) install -dG:all; fi + @echo "=> Install complete! Note: If you want to re-install re-run 'make install'" + + .PHONY: clean + clean: ## Cleanup temporary build artifacts + @echo "=> Cleaning working directory" + @rm -rf .pytest_cache .ruff_cache .hypothesis build/ -rf dist/ .eggs/ + @find . -name '*.egg-info' -exec rm -rf {} + + @find . -name '*.egg' -exec rm -f {} + + @find . -name '*.pyc' -exec rm -f {} + + @find . -name '*.pyo' -exec rm -f {} + + @find . -name '*~' -exec rm -f {} + + @find . -name '__pycache__' -exec rm -rf {} + + @find . -name '.ipynb_checkpoints' -exec rm -rf {} + + @rm -rf .coverage coverage.xml coverage.json htmlcov/ .pytest_cache tests/.pytest_cache tests/**/.pytest_cache .mypy_cache + $(MAKE) docs-clean + + .PHONY: destroy + destroy: ## Destroy the virtual environment + @rm -rf .venv + + .PHONY: refresh-lockfiles + refresh-lockfiles: ## Sync lockfiles with requirements files. + pdm update --update-reuse --group :all + + .PHONY: lock + lock: ## Rebuild lockfiles from scratch, updating all dependencies + pdm update --update-eager --group :all + + # ============================================================================= + # Tests, Linting, Coverage + # ============================================================================= + .PHONY: mypy + mypy: ## Run mypy + @echo "=> Running mypy" + @$(PDM) run dmypy run + @echo "=> mypy complete" + + .PHONY: mypy-nocache + mypy-nocache: ## Run Mypy without cache + @echo "=> Running mypy without a cache" + @$(PDM) run dmypy run -- --cache-dir=/dev/null + @echo "=> mypy complete" + + .PHONY: pyright + pyright: ## Run pyright + @echo "=> Running pyright" + @$(PDM) run pyright + @echo "=> pyright complete" + + .PHONY: type-check + type-check: mypy pyright ## Run all type checking + + .PHONY: pre-commit + pre-commit: ## Runs pre-commit hooks; includes ruff formatting and linting, codespell + @echo "=> Running pre-commit process" + @$(PDM) run pre-commit run --all-files + @echo "=> Pre-commit complete" + + .PHONY: slots-check + slots-check: ## Check for slots usage in classes + @echo "=> Checking for slots usage in classes" + @$(PDM) run slotscheck {{ module_name }} + @echo "=> Slots check complete" + + .PHONY: lint + lint: pre-commit type-check slots-check ## Run all linting + + .PHONY: coverage + coverage: ## Run the tests and generate coverage report + @echo "=> Running tests with coverage" + @$(PDM) run pytest tests --cov -n auto + @$(PDM) run coverage html + @$(PDM) run coverage xml + @echo "=> Coverage report generated" + + .PHONY: test + test: ## Run the tests + @echo "=> Running test cases" + @$(PDM) run pytest tests + @echo "=> Tests complete" + + .PHONY: test-examples + test-examples: ## Run the examples tests + @$(PDM) run pytest docs/examples + + .PHONY: test-all + test-all: test test-examples ## Run all tests + + .PHONY: check-all + check-all: lint test-all coverage ## Run all linting, tests, and coverage checks + + + # ============================================================================= + # Docs + # ============================================================================= + .PHONY: docs-install + docs-install: ## Install docs dependencies + @echo "=> Installing documentation dependencies" + @$(PDM) install --group docs + @echo "=> Installed documentation dependencies" + + docs-clean: ## Dump the existing built docs + @echo "=> Cleaning documentation build assets" + @rm -rf docs/_build + @echo "=> Removed existing documentation build assets" + + docs-serve: docs-clean ## Serve the docs locally + @echo "=> Serving documentation" + $(PDM) run sphinx-autobuild docs docs/_build/ -j auto --watch {{ module_name }} --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002 + + docs: docs-clean ## Dump the existing built docs and rebuild them + @echo "=> Building documentation" + @$(PDM) run sphinx-build -M html docs docs/_build/ -E -a -j auto -W --keep-going + + .PHONY: docs-linkcheck + docs-linkcheck: ## Run the link check on the docs + @$(PDM) run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_ignore='http://.*','https://.*' + + .PHONY: docs-linkcheck-full + docs-linkcheck-full: ## Run the full link check on the docs + @$(PDM) run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_anchors=0 diff --git a/README.md.jinja b/README.md.jinja index 9698c16..e51881e 100644 --- a/README.md.jinja +++ b/README.md.jinja @@ -2,30 +2,33 @@ <div align="center"> +<!-- prettier-ignore-start --> + | Project | | Status | | --------- | :-- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| CI/CD | | [![Latest Release](https://github.com/jolt-org/{{project_name}}/actions/workflows/publish.yaml/badge.svg)](https://github.com/jolt-org/{{project_name}}/actions/workflows/publish.yaml) [![Tests And Linting](https://github.com/jolt-org/{{project_name}}/actions/workflows/ci.yaml/badge.svg)](https://github.com/jolt-org/{{project_name}}/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/jolt-org/{{project_name}}/actions/workflows/docs.yaml/badge.svg)](https://github.com/jolt-org/{{project_name}}/actions/workflows/docs.yaml) | -| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=coverage)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=jolt-org_{{project_name}}&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=jolt-org_{{project_name}}) | +| CI/CD | | [![Latest Release](https://github.com/litestar-org/{{project_name}}/actions/workflows/publish.yaml/badge.svg)](https://github.com/litestar-org/{{project_name}}/actions/workflows/publish.yaml) [![Tests And Linting](https://github.com/litestar-org/{{project_name}}/actions/workflows/ci.yaml/badge.svg)](https://github.com/litestar-org/{{project_name}}/actions/workflows/ci.yaml) [![Documentation Building](https://github.com/litestar-org/{{project_name}}/actions/workflows/docs.yaml/badge.svg)](https://github.com/litestar-org/{{project_name}}/actions/workflows/docs.yaml) | +| Quality | | [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_{{project_name}}&metric=coverage)](https://sonarcloud.io/summary/new_code?id=litestar-org_{{project_name}}) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_{{project_name}}&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=litestar-org_{{project_name}}) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_{{project_name}}&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_{{project_name}}) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_{{project_name}}&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_{{project_name}}) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=litestar-org_{{project_name}}&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=litestar-org_{{project_name}}) | | Community | | [![Discord](https://img.shields.io/discord/1149784127659319356?labelColor=F50057&color=202020&label=chat%20on%20discord&logo=discord&logoColor=202020)](https://discord.gg/XpFNTjjtTK) | -| Meta | | [![Jolt Project](https://img.shields.io/badge/Jolt%20Org-%E2%AD%90-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/jolt-org/) [![types - Mypy](https://img.shields.io/badge/types-Mypy-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://spdx.org/licenses/) [![Jolt Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23202020.svg?&logo=github&logoColor=202020&labelColor=F50057)](https://github.com/sponsors/jolt-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=F50057)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=F50057&logoColor=202020)](https://github.com/psf/black) | +| Meta | | [![Jolt Project](https://img.shields.io/badge/Jolt%20Org-%E2%AD%90-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/litestar-org/) [![types - Mypy](https://img.shields.io/badge/types-Mypy-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-F50057.svg?logo=python&labelColor=F50057&color=202020&logoColor=202020)](https://spdx.org/licenses/) [![Jolt Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23202020.svg?&logo=github&logoColor=202020&labelColor=F50057)](https://github.com/sponsors/litestar-org) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json&labelColor=F50057)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&labelColor=F50057&logoColor=202020)](https://github.com/psf/black) | +<!-- prettier-ignore-end --> </div> ## About -This project is a template repository for [Jolt][jolt-org] projects. It is designed to be a starting point for -any project that is a part of the Jolt organization. +This project is a template repository for [Litestar Org][litestar-org] projects. It is designed to be a starting point for +any project that is a part of the Litestar organization. ## Usage - [Install copier](https://copier.readthedocs.io/en/stable/#installation) -- `$ copier copy gh:jolt-org/project-template $new-project-name` +- `$ copier copy gh:litestar-org/project-template $new-project-name` - Answer questions. ## New project checklist -- [ ] Create the https://github.com/jolt-org/{{project_name}} repository. -- [ ] If using docs: Create the https://github.com/jolt-org/{{project_name}}-docs-preview repository. +- [ ] Create the https://github.com/litestar-org/{{project_name}} repository. +- [ ] If using docs: Create the https://github.com/litestar-org/{{project_name}}-docs-preview repository. - [ ] If not using docs: remove `.github/workflows/docs-preview.yaml`. - [ ] Update the [README.md](README.md) file with the project-specific information. - [ ] Initialize git repository: `$ git init` @@ -34,16 +37,16 @@ any project that is a part of the Jolt organization. - [ ] Run pre-commit hooks: `$ pre-commit run --all-files` - [ ] Stage any files that were modified by the pre-commit hooks: `$ git add .` - [ ] Commit the changes: `$ git commit -m "Initial commit"` -- [ ] Add the remote: `$ git remote add origin git@github.com:jolt-org/{{project_name}}.git` +- [ ] Add the remote: `$ git remote add origin git@github.com:litestar-org/{{project_name}}.git` - [ ] Push the changes: `$ git push -u origin main` ## Contributing -All [Jolt][jolt-org] projects will always be a community-centered, available for contributions of any size. +All [Jolt][litestar-org] projects will always be a community-centered, available for contributions of any size. Before contributing, please review the [contribution guide][contributing]. -If you have any questions, reach out to us on [Discord][discord], our org-wide [GitHub discussions][jolt-discussions] page, +If you have any questions, reach out to us on [Discord][discord], our org-wide [GitHub discussions][litestar-discussions] page, or the [project-specific GitHub discussions page][project-discussions]. <hr> @@ -51,16 +54,16 @@ or the [project-specific GitHub discussions page][project-discussions]. <!-- markdownlint-disable --> <p align="center"> <!-- github-banner-start --> - <img src="https://raw.githubusercontent.com/jolt-org/meta/2901c9c5c5895a83fbfa56944c33bca287f88d42/branding/SVG%20-%20Transparent/logo-full-wide.svg" alt="Litestar Logo - Light" width="20%" height="auto" /> - <br>A <a href="https://github.com/jolt-org">Jolt Organization</a> Project + <img src="https://raw.githubusercontent.com/litestar-org/meta/2901c9c5c5895a83fbfa56944c33bca287f88d42/branding/SVG%20-%20Transparent/logo-full-wide.svg" alt="Litestar Logo - Light" width="20%" height="auto" /> + <br>A <a href="https://github.com/litestar-org">Jolt Organization</a> Project <!-- github-banner-end --> </p> -[jolt-org]: https://github.com/jolt-org -[contributing]: https://docs.{{project_name}}.jolt.rs/latest/contribution-guide.html +[litestar-org]: https://github.com/litestar-org +[contributing]: https://docs.{{project_name}}.litestar.dev/latest/contribution-guide.html [discord]: https://discord.gg/XpFNTjjtTK -[jolt-discussions]: https://github.com/orgs/jolt-org/discussions -[project-discussions]: https://github.com/jolt-org/{{project_name}}/discussions -[project-docs]: https://docs.{{project_name}}.jolt.rs -[install-guide]: https://docs.{{project_name}}.jolt.rs/latest/#installation -[newrepo]: https://github.com/organizations/jolt-org/repositories/new?template={{project_name}} +[litestar-discussions]: https://github.com/orgs/litestar-org/discussions +[project-discussions]: https://github.com/litestar-org/{{project_name}}/discussions +[project-docs]: https://docs.{{project_name}}.litestar.dev +[install-guide]: https://docs.{{project_name}}.litestar.dev/latest/#installation +[newrepo]: https://github.com/organizations/litestar-org/repositories/new?template={{project_name}} diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..04564f6 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,11 @@ +coverage: + status: + project: + default: + target: auto + threshold: 0.1% + patch: + default: + target: auto +comment: + require_changes: true diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css deleted file mode 100644 index 35628fc..0000000 --- a/docs/_static/css/custom.css +++ /dev/null @@ -1,66 +0,0 @@ -/*brand_colors = {*/ -/* "--brand-primary": {"rgb": "0, 150, 76", "hex": "#00964c"},*/ -/* "--brand-secondary": {"rgb": "99, 99, 99", "hex": "#636363"},*/ -/* "--brand-green": {"rgb": "225, 39, 38", "hex": "#e12726"},*/ -/* "--brand-alert": {"rgb": "241, 81, 82", "hex": "#f15152"},*/ -/* "--brand-dark": {"rgb": "32, 32, 32", "hex": "#202020"},*/ -/* "--brand-light": {"rgb": "235, 235, 233", "hex": "#EBEBE9"},*/ -/*}*/ - -:root { - --brand-primary: #f50057; - --brand-primary-rgb: 245, 0, 87; - - --brand-secondary: #202020; - --brand-secondary-rgb: 32, 32, 32; - - --brand-tertiary: #a1ada1; - --brand-tertiary-rgb: 161, 173, 161; - - --brand-green: #00f597; - --brand-green-rgb: 0, 245, 151; - - --brand-alert: #f36060; - --brand-alert-rgb: 243, 96, 96; - - --brand-dark: #000000; - --brand-dark-rgb: 0, 0, 0; - - --brand-light: #ebdddd; - --brand-light-rgb: 235, 221, 221; -} - -html.dark, -html.light { - --sd-color-tabs-label-hover: var(--brand-green); -} - -html.light { - --syntax-light-constant: var(--brand-primary); - --syntax-light-meta: var(--brand-primary); - /* --syntax-light-text: #09090a;*/ - /* --syntax-light-cap-bg: #325b76;*/ - /* --syntax-light-pre-bg: #ddefff;*/ - --syntax-light-keyword: var(--brand-primary); - --syntax-light-property: var(--brand-secondary); -} - -html.light .yue { - --yue-c-code-bg: var(--brand-tertiary) !important; - --yue-c-code: var(--brand-primary) !important; - /*--yue-c-black: #11a1ff !important;*/ -} - -html.dark { - --syntax-dark-keyword: var(--brand-primary); - --syntax-dark-property: var(--brand-green); - --syntax-dark-constant: var(--brand-primary); - --syntax-dark-meta: var(--brand-primary); - --syntax-dark-pre-bg: rgba(var(--brand-primary-rgb), 0.1); -} - -html.dark .yue { - --yue-c-code-bg: var(--brand-light) !important; - --yue-c-code: var(--brand-secondary) !important; - /*--yue-c-black: #11a1ff !important;*/ -} diff --git a/docs/_static/logo.png b/docs/_static/logo.png deleted file mode 100644 index 9505c63bd6f3a629897d428c9ab82dc9fb15946a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296255 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 z�z1={Z#2MMFZ-8C>G_01hGl7wi8gCsZs_E8&Rb-Fl_STX-W6$VGX#-^@@@?dtnt zpakMtK3yYcr!Fnp4}JlGVbrD64C$HSSg$NK4u5rtjazSNI*<?$ZfLVjSJF_^kE*E9 zP`WlRTG13m9l`i@cq<lL%p!V}Y}6}aHFg~Dv{Jd*3Ca7-#x?@)k=NE%935#wRXD(7 z|9Zo^|Fqto<U}gNHW=K<@%9noJFbS7;#YkxuACO0&2$gX*T^d;M%t_0d0IZyW8slt z>ncpoGtcj~_`kl0)JpaG1w8Ldhs;wWZxEj<9&M_zg<`#uKzm;IDC@T$gCd*s^WUGk zaD@cIM>jA`(mMnI7DKZ?l_ME^>t9!@Lg>xIP=E6@hW?4gc#7v2e|XY;Z5GauU0pL! zAoS#N*bV<)mS5W7DKnYyug_#9uWV50A+tD*^bv(rw)jOKbL2<~+AV%!+Dhkz)RK~< z6}sL?^Z#H{fA)pyE81gXs;5t>s7!wve-*9$EtmR%y8`6qjkw*9YJy(^BST<t5KH99 zNU#gv9uNU)U6veB-@0i;{2`klgjAVFwHkFDGtU`bV@hSDA6&NAx)qdHES@xvgK8p{ zr^&I?)j4N{z&#gjw<;a5%a39Zc#C}J3DL)NC`3?Di(B9|lHxy^&a`Zp0qCmMqfVi2 zWi1^+N)qQqMZ?K)d+%uPqq1w6apNiTNzxTI`rU^!WlD99sr{TJ#)F?Krf685Z~wM8 zoinng8K{8idlb}IrlA#=ZXRQ4HBNMOU9)kz<Ge&#mGMO@f{ARbcl<|R#_LDRL0|LN zB-gBbisw`t7Nfz?!iN?Yzmq@nqh=K^8PznTI+gD0sBb?8-cQ#hn}h*Bw85^y;q1o( zW%W{vx-LU<xNO*uH$+DTnx$Hh?8hNigx?NmPgDEEVXHCj%Z_zI8ZM3-Np?GX6A>sV zKSnaX*mPJqTxOyr;Pi*Tnxe>8zg_a8LC~nSmgyaJn)?EGk5aNTeB9Q0l0o`2W>t;3 zudMVnj3I}LEDemBagB7OUar}fhXGNb;{uA2&uxp+T2s@xJyEZDp)HRxwY1dh8m}_P zEv0;|OfIM&2xJwq9tuBfVWu3!Qk6Ul4xPCg0<99`PG2f@rd}x%Zeyd*=e<5o|CSjH zzcvMZqrBD_3Gpp$zE6UzVhRotL+0~N8t+d=?9>o>rJ({d$L*qvQxMY2o4LVhZ7f#O z>BCCHvm*WIjWf?eVTCdcds)4*JmlXBaL33kZEhZU@7~s3^Zc==>z0$%2y`lGq)0Gf z;%4o>j*TZ<PgXVOz*pyVJfNqfX7|HkuGW%Z{*u0~QrwdHi4{k|&`xzc4tDy<5@1Ek zNnL4Y$WndtfSUte&+xEybL9p(YyNkg#E+yLd6&AOxEq5DyxAd<!XhDZ!Vz1To*$1t z52-C`!pHs|g(UC@9xCGQASPY)#|7eAWlT?>{}P{Jo$<Xtg1#AX+1Z)!TA8irh0eV3 z1()ql&EbG<;PPpmh7L;{S)cmU7wsMDD(AiXs?5o8bm>@tMlE{a6FX>2-dajYNu!;` z=OYHavPYS_#gpfCwxxxz_*0zHhi(nP2jPb6VaI<eI&8*jr8+yrNw(401UQ;frjS1W z(Mye$1?0HliqPv+guq+l{<>QAx0B?P*pE-YI+PuKz1sobttaUIY|(Gz+WiZu#xo7| zglJUNua?%c)0CXMcWXyx$j)l{v(F5zkx#<eui`*umP_~KPD?-r?4EV6;s(!8UMPNy zU-nXBKO{ORT8WHHzwKmw=s*&Qc;Gw}!Rj^PxLaA-RwTYnp(Zx=9yzh`kn#Mme-K)u z28PQh?FenJd*%{+z~L@XXIv0c^b<;a>x~&HKhq{DRG6mUqCOpVt|mRMB{)5mbM7rP ze%Ypz;6<+**QiZs&vN_P#s<gd{M%llz3W^MUE#Pd1G!GQ$Sq!(Ab@Q`b~=BPpSiSu z(ZpoQUG<?ur|mMVHT)l?DZJIv)&?OvuZ#!pKOcK9vp(V0MTc~Ln@@+vao5Uhem!BR z#Tml038%2;_OS*MWJN^G`@rjBWh5|XNu+Sd1q)@6Oy(Yh2Bp&Wa{OhUg?F)TARF^J z_7Tp|p5_Yc_&5RMYKtE39AG4Gh9Lu*fP4{T-YlC3pi+nwEA*^eC-#c&?FlDQ;6LIZ zhnDXjPL{%3Zo37GI-5D4!Gsq1=%Z((z9j<=!15fy<_5vpX}u3V2j5_uDXVnYHR@OM zw;DS92bV!Xe0*<b>Z|J1XK=7o-=ni7OtmQI%_`EZ_HwZ5-84J($CVOStkub(7TfIb znH5isQ<S+1b*dn@bmYUZusEkF0Kf8=^~*f1w;JBnNRE?X@2cGONj``MMSUp4Tm4>H z$wWg(-_*2yKThgH_4R<sh}`BIPDf@sv@fxv`<&8(MU{1y994e6AI6YUFuME!qH%wv zzg)T`@6B<1$%FlTI}8MpGkdgEI5};xoX(b%;p-hEP<Hr;Y~<BtEv^NkB+mR<PY26< zttvCTMLSM2cP;YV4a>7R4b#AlE$b6mom>51u?VTF;vd8%-VE-oM1L>3M*ifp-2FS- zEMm)Ep#h%h7utELR)5W%dY2xwQhfxO_m6<RFzwYvg9zJL8LRA5*hJLj%;|UmyP#*j zGk0zqCka?Md&nSifcAJRe^TZE<p7;;d9ts2Jz8vrr0A(X%rHai<ok(c?yiME>9v-& zd9g4+w&xq1MPczLA5o5wy$N>HyMM^Qku7-Ve;P1tE5I4&CHCouAYYN_2>cst<oa(g ztF`SMaz@A)_`&bM%NSVxQ*eQ9p;Jpcd2F-$ylr*lCJ1}s6#8SNl`>(Xb8#_L^4jK+ z-<udN=>uuLvg?jDs7ct@^OeRe&lr8l`K7xY7H`+46VKe;<&@;=mY;^*S14^N)JxJ9 zcbzA?v5m{UHwzL}|7r<P^(P`(4c^^e!wwzpTB!wXO3p$dGkLMq*x%OMN4j5i87<X2 zG)R9PwL&gOt7u%Wt3fZsv%=B4?(34Nh7S0?xa{J(0#CcRTIxCO3Hoi5=vjUzcD;ss z)!Kb-B7((+nvT>~fZhyD-zn$`!Ci89>a$vO#mVjW9)A!{Qp_5L@a6RTV$D<Sr1#T3 z)N9#Dj}rdvUbPwo!duJ{Fi64x)ToG>jJ;a}82@Fh-MEX=n|}7dGf=x+Lhv=8JN+x> z<{ClVfLZ^fj-G`x3J99;!gOgGqBve(ov1)fb{wa%$rZWna)S74149khX7g59Scdx2 z#>+G5=mXwdc>zTDL{jeh-^SF|GD8|Ob?6&9QT~BJ^>UV&+~=zoZ)2R<@c&htpXOf= zy>VRIjeDia#>VUPQb{Yb7vHZhY+-tiZyg*cuxp#JYodk}$gL>$)WJVnv{ug@hIBwJ zZr(6bk|bear;^saow2;&VBH9`K}%Zu*rh}_J;bF<dQpA%rm$w&?>0Yw%U_p@&Q*Fc zwEuvM`bbUeq?O_pk^gHV+Gn}<wd?=n3H>9_yO_RNS=zT!dlBp{(KbhFgf2Mt)(I+& zI4XZ9N>S{aw<EQ#ON+0&$kX$5^)+*F2z6gKOe1rdvj*k7*I&>m&vc|Kz=;#dWx9uj zk=(ATI(aPo*^C()P=jCFcJS>{hZ>e~0NWQ@`$<pjybX1gZfPw`6Ssz>2iC(jn?Gz6 z^QOlQ3#4GUJ?9f8_6_nwfieOkq+drjJh9rM9RMbcGdC-ONswE~&oG?{yqYhG^d~EF z2HwoH(56hO%cbUfivVbb_L9@4Pa?`(2YfcN<KwDLPO7YS`PQ=a2!hugK~*KTNNkH} z4BRpo@@uGDCP5+w(TGkSpq;q*$ALE42&4~p3xH;{_&2V>NZ+2*Jy4fJbWnr@v6Z$q zxB>Lb7Pea6bj{nH91MKj=+m%t=}-E0Mwf%H5bo}NLW{YgaPwIQ3qqPYz0i2^#Fa~x z{4>ITFAi=!heJ_NuSYY@#kG^<;`PZK;5Ug$KLoVU%Q3y1>lIirBL8#HD13oW{{DAn z5KW8}4gN_jv2psj04v-x{Y*f)R#Xs4k#{86K??C_hE2^+>uu{J7tg-7shi&Yy{T>m zPq2&7@f8&+<I>fY*5tp8c_gcOvOcs9w*SSERiRkYdVCaWrNMX!j{EWBtfaV@W%j<2 zW#KY3i$1HNC`%muMF?@)qqc>Y!mrhPY{}x{=O}l|UWY%p%FIuH8bE3_rPAZbqg|w5 zeEfu5P$rmqiTw>0*khxa-!i}ICWTB)CmBBo9ado0tQQrTv{=|jQ5R2TEiP&$4yXz- z`LTnM9bbKxeGv(Eqv(BipP`W;%)q$N1jZ50<ItJXBJx`z8Z<PWaAK+HSBv9w1vWK8 z1*iauj*W1_rAmb*1qolPc^b={AFC7J9<(O?$Aq06N#V%f8c$fIS{dnE`L6FxdrTV| z7}X9GHZ~N%1;Qv&=+AS?_Y~kjp4zBoLSa7pbUjVi3@5CD&$r>(z5;Ht>fzxZKxBaI z)2(VF5WD#q8a~R^T$vy*?Br&Jl+q*)fw}57lE_(_7V`Dc?Nzd`E4!5md}eB=G%}Ru z9ZFkuwNHy`h`!n>7C!v*mF`>T`LWLrQd<2N4>LelJLbZN;p9L1d5ZY04KNLnDHn2_ zeXN9Jc-s1=)}ysl4$@kyH8)+`dkbEG6fKj!cH!XnbNUD9z~key{%Nc)SIvjPF5cFr zCeIMv?+E8-g?>mt^rs~e2aa4$)FaswT9Ezo3^IUs;%RPm@{F3x5HHn^*V_rG1@(hK zTz?wNoc%+(KKWRcoWIJVTqEb*CCC02gmR+VUnW1g9DiVI;pgBd)Z8U#gRphq-B^=( zg8(}ki1^M)5@O~DUHqsg(X(?<gPRnprwD^B$DuF3?HjM2uT-uPXBFs83!V7G3+yb8 zDM4JImKs%i8ix7Y=YW_(V5=ONyV_|9UJuP}{14uZ|4FrVk8Caey9WmtuCwWh<ZW;^ zJ3nagZ0Fp2A{wHs^km_?NO*<u=faOaUe+j3F^DQ#&|4;>CBF}~PzsHIOuuR-R!=SW zxZM_i?Tc}k3N7wB<uf-JwXU?o3#OUbQdrBYW<7XmOG47gdDI*yKk&$FYmm6?$Xj@P z>>xD>0m>ljD=X$~J$e3+z4W*B$1!pV=r~Vi1F5n2>4f)nL=(<M?0U`z*T-`g{8zki zZANr?cqWCE$yzUC_FPuRO@GdSEj%<3WCE|e1pMZ>1Qr#3m+(y7u7Ip#&&PW}OHy+z zFdsMhA4cgfy*uU3e)xb^^wZz{nqSKqJl!!-5+_dpJ&Fw?<D?OeizUOny>F?bX6BhY z#~65sdk)E~G5_@b0{Yv6ut;^()f1qpwk~pMo^{m2t7aH!UQ2_b$M3`s>~aHpW)21H z$F-_TfJnivU|cgnrR&8i(#tysYBwLw0Pmt%r^-sAY#KpdfM@*;tY7#uuCWLj1O@`; zTi%?Po#@SHZ=BDFMMZUhJ#;dps9kO}gaH8?G9e?hDiu|4_MZ#(2SAqpDra~ARUXv? z0Y+@d@bIvUfZhbFWl3u4@pg=Way<X`bUH)=wAQfQRENHYDrx6_zOoQ<+OoHJ)ddB= zY7FuOm*q7!PHqR=dE>00?s8AjyRi}W=?tfmx1O$Q>aX+DExRWf0I7@2bdW1iLUC{; zKNzp-l@^R8j0iZ(SpyudEE}36YFMX($d=yjaCE>Pq&gOTxSw%UdK?+`U5+H~WKt`W zQz1m`%5{{uZO8@GpNV=1ZciV0#;}^Aat+nqjXim43x;KEs0ZwElf+avHfcj6BLYcq zD22b^@JMjaM6qfVEuOfWQt<O!29ZHI(&mlzPJ!yS%Tz7**UJ&!OJcYAV7(|V2}Jti zclKEFJo!gW5r)BVb=n2+UO?GH&IkC@GhAF<SI0j>x(M@Lq)2s6vOAbNG(Q+wu!EV= zu}%urXantt5Gx4pY5A$i-8cw*+(KM@+Y9V;m>ECl$YZwRqK?o>E38$Q;FvkMY^px^ zRx>etJx6Lr8>ysu+Hu0Srw);>6G<me6xJ6mDN5Pn05o?_fi;Ra?~cODI}tKkpX&d) zz#_NEQvLC!X47T9ibwT`fYhb$8|YLc1%@Llj<`%Csf@OH=L@diYRt5RGx$=WmIDcP zGX{GdqprHk%VkCAXkt<5--D~)--9oI$a0ZTjEN5%C~JXJk&r?TB+@t5jF{~h>nks| zFU2%&$qKa^eB~=Df;K(}z!g*>MX?tt0UN<2V96wh>vW5vKZyTBh%J)TaNN&0gkZc* zoj}BfFh03-lzO2HagIX{r*ch_7q5FRRZ{}(Rs{9ad_iGLUhu%5d)hwxiFUwi*y#GB zjXXnJe}<*vzf4NGhy;K7p9w~D0F%sV?Qclm$<>Cg8fzV`2p*5`#I$-uDsnC+%38Tg zyoa;<9pf!is2^Wt+kBX$y-Loe34r`N{{RU14_Q?{w_fUsig=vzBcJ&w`;z*kUWhtD zbwn4(G1--Q&KKT#d|}^%-~6Vq9FY_vY3!CjZscrkO2MQP37Pw=z*E(k+PNj(TQ!C7 zRu=5cF(mp6gf;|p-;2%zbIq9MFQ2%8tc$LUDjHaxwDAY<Y!{rxl!TrI&hz-NSQhko zy<vHn6c<TaasHRivOfl%R3|=8D>V@<lY>zQb+gKtuL12|8coA)Z^KTnuy_K=ms92T z3QAd~wrXq874RdL?Ns(*YvMDKg^}B1IYrc#!+f>!re??)Hj9Z7m*MFlXWhv2uJx-E z6Q$0)jue!YSTlO%<J@e9^MI?ZV6JE(tI90Agnu#^WDXPlCu4Z->f%!Gy2l;vk$X)O z5suz3le|3)d!7OOILGX>Qe1VGQMW`(<diNAJvDK!i!M-6bOn51hnMGV*?*j9xvdx= zA2%3kD?m0Q%jz*X&rMy*aaiu`N>0`LF27c%y=^R%_Dzzt+EDSx0;EPW*-Cr!{oJ*k z3dDAezFRVxNnz6cHvZrUVjtH10b*I}>=xzkCC6Xb{mSv8rb4`MwZ{1dYk-DwEld`x z+qKH<6n;a|)GYD>x~}$qral8C>YmJ`m`aA-BU&xTPOe<{ittoaPzO*UL$XfM8Rs<g zq%KiW5!<1`2a4V<2Z#h_F0RHO-}(KBHRfY4iUO>Vv$Wfzic;z+`$aVG{uqn+VG2|v ziStBFW|zIHI{PzzRKuh51!vCNaIwZpr4;*C<sPkJ48fk|^Ru0Gaq%Bhs4Ew1*K1Z6 zGeN(gJ83gnToe~_s4rjk3|21An<g1FdBz|buhQ+9Z>O`IH8xR^omaUGZx)v5ECc&| zbiP&oQ3d@UPhCMH6Yt@4Cnv=!J?yNkyz|6i_zT~l%{X2vqftmwk|l%)oPFo)Lw8C* zK|wOk3<BX1J~7}vp-5zvc}Y|%q{W*J6!y;RHZsOjjcYZ~KWRRqY)aXl7J>}%Lv0p| zF@2n@OhleGpkNT-*)7xT7{%B!i#{;%1NvY6iL<lQCEB;~@#38vg3L)o5&%IA(D1o; zY_0ya`7Zdv|7VZ>2aaE=EiHIzs0Q3q+C^OOBu|MUcBFq1_PxM%ouc?FzwqYCbxKSO z{MreeGF<}VhVNZ~hZm12XiC`i0~Q`>Fu2s;YD&R*=1TEn|A2Jxj|U!11D*FzirjCb zK^F$rb*E3H>(NColK5(&LPV%SS=hDw&}#R~&H1CAnSk`SNzyxg2X?BT7FEgH!kc~M zLq=#qli%7}E&?wX=cg(;e-$1ZyZ|P`uakN>JlR<x4K26{B|aa`4;JuT<9^~gq4y`` z$o7%O1O`ERs6p)}j9;epfBlD2-Uri&Fsc=Q=FQWlAx($5Hng9Kj8=fG`~)$YB<V3G z_@OS_H_OUUW?v$&QZ4AIih4rw#0~}{DqG4EeVt4Vd!|zlx;)8v;rwN4y{PiSbxzh7 zMm%5kP4$?nmY?WCF!A=&;-z;&ui<JScXg8*LjUjl3O?T)fI|aZfzKhVmJNO6Op1RD zMH%vNc{D9+Y0-tjU>tL-)OE-*U=uyrkTZomY??fk(Y5Y;VL5nMCzJW!A^1i^;53zo zOsE*?=@etpDRIvBc2%#%M0LOAc^*ek&AXk)|HY7;=1B{cUr>1wu$Z;tofnGCs@q%K z3#|+&qj|$5ddc2VP<6saq_u1+ZD|-DP7R>)Aw&VB#?u9X%4XA4ma^m7wOeM~W1b)A z7KF}pCUemsH1vz3nanW#vDs!MP;Mh~X>Z+CRTZ59z4FbBrSa$SzqT}dMT7M`5YBk2 z@6(c`;;S+mWP2A?bjk%Wdd<mAI$)w2K1<pySG~9H^xS+TWBQ7zf1m2o8r5Jy7E+Wv zM*BA9J=c=J0Elw59oL+63>kx=<-_s%-bMHC(630e%aSJ)Nb8%G1XJ5e{u;C4B)*>x zO*=Jcf?v<o=roI^w0a|lyNC!|y8lYDv#^~i4GsMTeawbQM`I_~OZwcG{y67^yTJGe z=M57>u$125K){^;Ei=zHc{?HW=16d&YM<|GJkPy4Be|yt_ht&`mbAHRO{tajgx>k5 zmFgG5xats9+rm3jSFrfGOyhzHBEFpILCVC36?%a0)L7Wqxxqm?QSgNsnw)PYKxBq1 zLN5jzA8bFTRAH66cRhi+Zr>n2)-K_VOk}X=<kuNh^lqWDX-@3Ys=5Z<*9HvN>RX*f zOTI0(5IcvwyE$UnvlG}S=a@Z69T?v9PQa?o$Vc&p6t#}iScA#7<llv~ynNYMSn?%p z$}`yDQR-TuUYQbvqPAddsM#L5H^{Q0k2~RilHxr$3Q8#}8=F|<88@@0zMbZ%9BIOL zBN|SF@bVOBdmHqqs_)$kxkzkSBYqoQnOGME39!Tf6pOsGl!kEL2a~sMrY6+vitEQ! zZJ%fC->oI3c0;-PVs}c(<4@9T1YX*cw6gaO+-tM=AOfK-WApGpJz=Y0LHU{5S}Sqg zMV*AlnV)M?tZELE14GX?UB#F2q%wY-vLh{TYx<y5Hcp|2f4xg|c4Q>B?Lz(7eP5$F zIt_4ea9ng&;DVS7nwne6KEbz0<f{NFYoa<nL*Zv&JR|DM?v|cRB7Y~zZ6@u_O(he2 z?S5uYbf*x-1XQqOCDZ&OTE2(?^=+b#iM!d1I3=w#!*2!!+7&Yqch`-|3>!jLxhXH6 zf~pEEOJyG6Dy_#vNc%9*llECFd+Ch>WzXyBJNUyMq|6lgvpUJsA@%Q4-Uy;j%hFXQ z-c{z+zDb8+DYq1zD};&)*8xLzIG4-P(n3rcW0N}^Yt?~N%<DU$8Ga&e2P(eU<F6~# zA6A8o#3)~{V!SeDn=~-)Yor;tzPakD8ae0>R%_C-eB#q;Ccs#RxD?d4H1kc@1f~B? z&ijub`-8GR5eT2Oq$knd6`e4}a>468!L%&<cAqQQ9MNaa*FyKYZ+`mPSWmc#9f&9n zHhHJ7?X7!K)OEr}Rb}qP>&U&G6}Q+DER_()h7(?=I$tATW8h6tz1|9n=cVp}fZ|^b zgiZ<Bj9Wt!mqSAgOF3u&Gvu1)G7GhdLRxxv6;N2VDeZM)ANSCW!yg0walZ!UK9Jfm zEWJB5so`L$(_hsdpMIWiTXUwo$K{(J&6i|pl<hk{HcA!B3ua(+RnkuRgp6_%N+)3? zQ~LTD2uJZv|Hl3NxT~RW!MTF|VZ05AF*qH#jk3tp_Wjbj(C0<hHy8*`=NPzgU}6{* zLfgvv3<m}yaq`Z7KIqDAWF_37TO(YW)<0k$dny#O_`cKlA?s|5Jwo>1{QXlNropr| zv~Z^9H8JSz#wMsgRw0Tj>#?+nAw|oG@3rx3;Qjol#$f~Ik%egvcyy`MP%KqMl!2mH zWnhjOsm6va<`RJ|of2y=M=dDN0P3tiB?iiN1)JZ2(PeAdgnJ4`^EZ?4*!_~$!?FGc z&0pZHM_0t!t++VqYP%Q1awTEV<v|<+x8M3<MSB-4szM4$dpTt?SBZUc?=|5};SU8e zfO5CJ)jzVgv3!!0<QnBUugu<SMwEWXHFtX_^sG*D56P~XVhKBr+tn`DUxG3R(cwR3 ze!GFa!F=>l%r>uDs_!OJd*<|)8o6^R_e`_uVM7+634xrO`u;q0zWAU;zRcXt?clil zUe|rN;rn%vhYp>K>rP&cvQ-coTUepGdXcqd!rC5P3r3erqt^Hxtu`lr%!4*Xd@h*( zWo4L^5V$Mf8ft>Hf*selOgMPSQAPEb4|clOC$pSc%#DGy!Z){l^WNL5msq+c^6DxU zn!qMBq|ud??vxtl<*Z^NHi_<hih(68{8l+Z{pcq`<^<e4<~wF*@4WRsYXi9{E*x-9 zlDgf7<Vr!`8eTb3a7`R<nWfE*{~9B<sX%ArLYiHuRkI|ouKyD)NPdZRM_$$qxhT-g zQs4ody`-%_|8*}-^>Cp%=MiQ;8xxm}j`sGS9MIH(mk!IklPozMd7eQOF-K0eS1ZBC z6kccox{5#L-CedzDl3(u9uHcYru0vOi*@ZRb}4uw<05t&alF;l?>1i|U+^~E#gua; z1Ye3IC;=mnm)*0Gl!`TSr|;-rWU~H5nJ!LurgE2R%*y?Q)G(4ae7x2I!1)d=R9d>; zqyiksc31UK8+WAT?=X=c9=CW9T7m5$qcJddTM@;yHoXdJw%>)rIiZ6oNp8p@={HJ& zURhDxUZB20xgb92aw$zhsmf(rTQxYuNK;*}be*67Ow7}>K=RR6_Uv@x{C%!&MM(uc zMOEpJ1oQm`apQH1`zA=pdG#*Z&bqF=WRdBn@q7H)e$6)%wpD=~6EmlR7DO9YQO!p3 zeSFUOLW7a6K<SId#?z{Ksm>aJnaJ6$l`Gjy&c&6Wo=K(DcmfTXQRP$>5AnkX$l^SN zpYKD|eW}-}Nw<MXmlYL?wvcIi#ZhNy?)kfmgO&tmx#2JO>p{CbJeGYlj0B{lY3Ev9 zhi*){BQ9>c>4k-V>z>}Ow*aKsv__gYy&`zf?K-h4JlZ9xpUFIxlIKlcRW7l}n_y`z zUsFg#A{KRyENGdmE`K2m+LW1{B@djR02Xm1-AdpHXJ(bw%bI368{3D6C+{>rfCyio z0I-i`^Lw(n`5zE<yIrS~#=2BwOVBn=n>g?F{~^-o{X?ajXmGS9VM}`(wo%lK*lMX; zS|X>3Npf?ef9{Va`rXc&)osGDlaX~#e7RmFUY5{xQ7j^HXTa9>$_E7c+Z?E*JT+;P zxyK2)ZtngwBs|;Sa?CBy9@Py%O5OcuUl3smcgQYFbi6MS>_OKP<w$gJl=EuAH>;{b zR@W?8a-?^vz%#Yb`^+ePudjt(Kxyv1^aVxbtQ=ikFM%KL&fc{(sdd2_CtYn4tb7|G zO|;ZBx^FFi_OY<f_3q34!;y$IQP;yY9PrTw`85$sd%&gZ%O!KM?6+^<l8}(h)8J}_ zBgc^63!lUaIc&a+&hUEWM(Zh6l$>1st3gxcr;+^@TI#&Kjrv;1g6LK@jq6@JkM$-y z)Jl1gw1H^kS$RqovZJKKz-w|%4+9SJDzVU=7=#-)e57(Sg_meDA2cc7ckl5X>_H10 z*NduncVnALqV~%8`CR&LE=h8S$lj5Va&zg9XAh6K9UPPruSbJfEq!Csj4GL{gsC1d zM(_t?lv1_JK4iyw1A}uvqAyj-$D0wMU8z^s*L3g6h?*)u@_ZDYpM!ni{8dh+1y_!? zC35@Q3i3>9yNZ6A>gT?uyEi6z_^ktEcFQV=puat)kK5spwAMirdwrq|`Y>oZkQuo- zRDX;_sCNPMhF?IxH@OS{$z0CiTGFYFvVhRoOr9~T?$1&>ii{tZxt%hNKTG9$+}!uZ z`umllP@30i$Yt`c^X;aV6*A`7#ImAG)n;e!Bw|V!`}`h0MZx5O)5wqda(B1z2}jy$ zOFwnS-5}+&Kx9s2ZDS*w^KL`;LfGBv2x~dz_J#b~*hev$rp8l?H}1Ve9(DN_;(>fo zaFv@l-Fbhy!>zLcl!MVrnUP8B2vVm~(kH|IlnURUbBw%1?k9Nu>r|KS7utmqXU@4Q z{AKpziyi2(N-ap1qTx7&&tQl(jNjx(vz}URtF8S^=;aBQ##*lTN?I=#-`{CK50qc! z+)VRa7)$ypJ{$D6x7A}E3V8SsHqL&h)_))Cng<$g5zBR2xqC*#Fd|gFXirO{9}c*v zyE`yd)v5iuBR+GlWmY?78*d%?w3|3h;rn!(kS-S^$zbp_q-eqmXo=s}q;;k{WyM=1 z!OiW7dwo>8yt^fCKS_E<>Rg(Hotj4y@})rJ+Jyu56(?%Miq~!Ui}lcsbnr};+SOzh zWA{t(r9BiLAAKw&Yv+6nm`Ojh=)2Q}qi)(kN$GSQxBYbVj~{;<=&g#7MnU|E76C+H z)ec$VyOSA@qlKs?_dR@+!PcMdDYzLrS@q|weVJ&X{g%hjRQi`su)dW`%>h|CCk{t5 zgMuVgbX95Kx6}iK!On*MRR}%Nm9zBw7Uc@Eb+5J9vZ0HHJcjS5u<lQ{EI&r$Qh2QO zI5c;E`2Di3&lNoZ^V*Nk2u$4pZ#T**ti;zDd1tDM5w$qYsm{j?&4z-X(VW=xC^0%} zwmxe&#XhY-F91yf^-~S5<(8b`WhzZOSb`T*RqvIS6;99c_DVEleP@<R<*}YyY)+RH z%HQ5UHh5DvRA8wZV`X17<a5O=bx*&;5Q7zG#_{l>iGl=S{{;E+I!@;JQ`Nrc=v2f~ zGh#=fDJc-v^UVJM1cHpWBZ!H6D*a(f9K@eFx{OwzW5V^agl`X2lV~@1*H-(bLB&Nf zt)+zwXYWLgsB^ZQlj*SP?kg@mLATo{u3f>b1H^Vw-(X6wq@&VfOlwl1?LgMcLk)@m zeMz8tfrR=q2_lrFBv}b7TltXbNVm>-qVx$z#$mNR%#oL{*IjPbwk47K2h(3%UDuo_ zDLbQc8!4s>u6qym9j;NL<E7?%OqQt^{(bKU7}$$GEE5Crzz5ZmoH4&q{*}aArUC>K z;74@qEB1msJTxG6_UaN65{l?g{ZEr>&kwzYKug<P(bda~?tQRVGsb!8c(iNKztS~i z^Qvoh*8Tk(UG~(tMz<o}*?9IRuX5B>OG_4Dt*!6xqZ&8AQ|!#u=F#c)44SY^OtVPQ z#)N$-1HQGgL<mhxlYi=!VQi{c%prl$yaZKRM4cCu=`x7ubA8CnVr|tJ@m^E*+KtJG zad$3T&*mYV2t0xAU0r$U-kd|OPX0zKYOKl>NYzSfD*J-bQEE5N#lNHW+%+fdq4x$L z?f>xZ0Ho8dFRv;tY}{2z5?XCRn8ka2ej-sto|Orl6j=~v%be~H_-1g$ylZAi+?4Yz zb1C@e`Jv;;kI^TH<*eiOM<s&B4bc+V5c!$iWRlz5N~Pu5N(l-wa+b3XB1;VE#R_}E zb%pz9y23&WZ1yd7yc@KFb4S0ktrK&S=i+L7O}Ofb-hfuWaA0)8L}?fFq-k?lYy0eM zMtqopwx3aF@MYlejJV_rf#l$>+pKn~5E<6(J6}HWw`W)qDL)hSB74pP&)sgP4$IX} zPqzgjbqQY725Mb1T~pqQRrpb~)H`@m%W*DMecjUhf0B;a>4hTrze#G<uSPz{@}%MD z*jQ>z*m2`FFI0zbTWEAS4+e3U1qPL;fsEe07l@+8s*{|j@Rg;|^o+y@L2?CUDkN+V z^6IKBw2|?_(T~0YmYX|}GI=>S{1nL)H(O6WkMJqE+78rm9OP~2gbi<OnpUbb)ywEJ zDgR~R`<-A(_07vvR@eH)SW6oo)5jNMT_Rm;FS$Dy&$e3<=v|><#Th%pt5?%VOdm0h zC|*~M5I82U0W%Awk>1>8?B;UUwDq?h<++>e5M%Nb$i`iNZS1#d^f}KQe$1lCpQ;1k zfz{W*-UOYzK3```4Y}cw)4u<0=uWCKN0N&Ch#HbmL=GceZf7G`MI87_1q;bDmm_k0 zFxlEDD#;=&j-%^PaYeYVJxao9>G~ytytHt<K~V5Y$5+@EC9$eMgH?TRrzEs2DlY>v zdsuj&dulCMf2fDmL)Snmx(nM&jcF#hD6bGa6x|hz@3?G}$LN-KZ!vPvw1s^g8H9$; zP78fSI1%bHu~n1^KAQr<-GPrpjWYEm?;#9=Ri~)8cM};287RW7i&D~!6{T{*Wd&n1 z$hTu9-_|wHyZgt;`<z)}E7%9v=}uzjetRGp?IV@>P;vpd{pp5iiE?L8qu==;Www>= zjeoEzO7iNJg1ESU|G+?=OSm&Fyt9WAgY+-X)pPIGzz_yt?QSPgdQpuz%S=jetFKqs zke}_aW!KH+m7#8$n(f@L&hFky!-Mkdg4JC#E}bb#ndI*NPc?4sosH&WWz}|fVGU94 zglgf8Q<MjsRHtGjkO@)S3`^>$`4voCKh}7MQrQ@<$zMV*ls)M|rQ7h;F42OFKIERH zm^+*1nf4;z(n#}+X>t9l!dh3ik+$Dm>>H^p_EzH&uC7{36IsT=LDGWw3IuW1jQT~b zwLYrIgI-<z&`%(O?Oav*Z~8{Ch$s2_XQhXx%@Gw`Pz=eHtrl<fh4ozuF{%{uRcgyS zEs37c`PpMuPWq(h+7M%QA~f-^*ypaDZ?&8*bF`|jBG;Hcpro_1&gAj)yQ;~AEroVT z3u0$pT-Ec*Z>y}=k)BE4dg&tC;oFn)AjO%RxhW*lX&VwTNvG2Ssa&eq4)roAi36|> zMKdWes4-DabFgb=q<QkS)ncw>10WObU7yn!uh!kHEThs#BqxH-u6|2EcSa$;3<<J? zp2utRucG#<r`5=&7E3Z_CN1pbG519&DSUZ-?7hWrG9yjNFbm;D;CP1zrXaw^r$0VC zq@se|z3mZZ(U1!`p`XS+`BU=(Z{F9hkGQzG<t$!CCTcd82x4&9!YVWz*E3fwI}e-X z(fDrAX9{;ViOw$6<<y-*VaHXl^JJ2eg3@WrmKMH-GWnx4AGfw}%<QYZ-M9-kF&vkr zEPd7%8B$WcA<x95FZI;47~j}74nU1HEecE5E+3XOcYwUV+|IWbi38_bo>}KEzsTTA zKnN{FSAE;BRnGU3wuSN5n<xb@p1*)yLzcJO%Ti0z51w>gelqL5^3XA_tKMFQ4owt5 zYIitMQ1+7&uOCNf8_ZmC+?QRyZW*!8A^(%8FInDEJe2nxRAxX(iVa?O_cIX;s_%e4 zgN{(dKutx6?Q0Y_n{{>AtY^K{LU$VVM7-3VrP+A%0{4U^=X&&Dw&Mh?U0#x0+V2oj zo}>^`bUMFwfyZtD<7dCQGhdZ^Si9GZ0OjuMqgtAxMYI;1+-tmrIg>#ez!7`(Mk1N3 zB{;{Qad4NwSum(cuhDzStK>|JD&QSXc2v-d(!tHj&(um5)+rctDLVl=HPZ^xm-xL* zd9mMO@pB6R8rE733f2*t+I5*QSY7#gRfeQ5LUwujOj!#<U~Vb$-paP?>I8b^!12`o z=a<5um^N+FNCWkI#t$y{q68*}A90+;rw^-Zq73iVa$iQem!de>2bWyvFw51G<sUM$ z2CW86$F;!uNAzOT-fv*lUFX2k^cGHLGCIGyB8=hw6amB`SB;?7w7)(c<`gI&MfAlS z^<fene)bhk_882bk9mB^`rX56c!3ulB={T;FCrp2TMqC6|CI0Xo0q2~A4Ny8ywLqJ zm(yquLH|yTTPa__VKNUhKVSEDckyA$w8c+OM*?sa0Uc50+0!IJhAX>8=ACTMizIX* zh6?oFI3`vli<B)f*0JN7;sCpuO4khHuvMOn3xXvu3|k+H(J?6YXm2E=$3Fx$ygc}4 zW2}rxh3$!%&D@C$!LtOMnuPt<;R71LBlg^725i2DZZN$`eQTkMI`VC=vY2a;)t>|c zo5}JfYn>r;BQF^f&cf6dZXh>bb1tgPrI?THFeYMI8N2h5Rbkk7{EG!}LF<Qg<Z&Z5 z+d0Zst%tfIGCCjt+9jBN{v5UCIi6~d@{xx(XjXiZx&(oufxm%|Lme|aIzzO9|K6=? z?a0G^Rvh>5Ne4wxVT3gG!%XF~VRR~fKCN6S`g8#98RvWY01+XivEMubC`dOkAG8N@ zmU!gHcG!g>O5aM`kv6<8y`HgO3$nKnp-y>fLGF9{>CJ@>at>M8nbv1v{4wYL*L=I| z2}_%Wi^t%rv(|Q2ckqWbho<jp%1v%Bwv93CtaE<G)iA@Jx?<9cA-UP9q~)R<<x`H1 zKIGP1ON-6T1h#y-WUnGwb%W0sj29@^U&F!Sr0JJ9ADu*r*sj*U#a?Iu`R&rVFiGbj zj>9Vjq6DEr0DZrg2Ui@Ou>WSdKHmKmAP9Jv>v$sVV!JnPRp=vY4SE46sUhshGcz(L z?fdvRMoZh!mgu`ss*=8qC!w2jlbe5L7oVlz4Vr+N?P556Ft*W*`5nGFl=bzs!y`Vz zh_$M;w2M3>8i}AI>q{olSWi@b*l>rzAaw?N(?h+Hr>HoOK2!aSeOygu(KGva=Ahz} z29^6Gb7Aa+7c8v2(SKD4FFTREvkaIie|$E~x3sRU(C%h_y>#wv%`Bg<$H?S;^hBox zNaQAX{4P@Weo4gaNLyO^##x&*J^lSt_dKNw<Pj(xnLK~`MTMvqaDnY-zJBDvvTyhw zHNs!J|6>7gwUh4ot&MuRE{0K16Te9%X&+`!lO2ofKL4CIk;rEF7*N!wt2WzPT$93H zQ%0n{8rJUC(>s&s(1>H5e!<x6*~7PgKTGj*bW~%^d&-H4q-!1d`90@uH>+J?7Y1*> zs^xT$hjoAT7K$R{uU*?r@C|hFS~<qSO~2JgA?b?I?;bBc5DfXmXd4KPAi=1`G$hk8 z;40wfl+NhfloRJy5O8`*wcwg+(8R9{=$AKPz^btxF+IB5ayGBHDk#gcKk#lop3QS~ z{Nzqqb;(SJnr?5|e!|RL&zI37d3}APz!Ab70}mDj^J1<v0l+V#dVERG+5QKDGo}T^ z-2+L+FUk<p0WUtv-?So3hfBx{U(RHv*|JlDmA0DnBU}rsbU#hbrk}AvilTo_JvCxb z-B)G_nqM6GM#sQ6|8k)xmoL{4k#WZ>$EwG-%iB4g&qXdveQ4n;ytS!8DC7U~*^`^A z8UAw5lTX=7eR#rhB=}mE7TfGRMG5G&ah7EI-T1MHFkCf?mWf{n3+E|y%!@#Jfp#~z ztSDp9!a!8c0YRs*n)GWeAi5s#P`r1JjxB;tvBXiGAy5+kX|ZfxCwXvp*%ts9YlRm{ z<L<1*`q+VT+caIs^_ex=Cx>sucoFFGUF%0@hB%5b)k`=AQr~3+zRMbk>+64)8J!&p z?OAUz#1Z{RHD@7Mf7o7JEzWkQ9{UNo-~G;e^jq-WQXyJVnm2!wNJMIT5vaL@wl5$Q zBS-b)b=&Xwr)*!I(9?X1UaZy%FR@K>dsX}1gkR+lJnqnB+OgyAxVP+sXW!yWb`H9E z@$UV!TM9qGB%lqUrG3;gt+tRTx4wRRThAHy49HaY$b2}pJ6(|fXx_R>lEB6tVVGB~ z>nZoHU}FKV&B_Pynl6>_BH6+Qy|^xLlw|&CvNf4TJ(*Y=?-xmcUHu~P<~iT&f#6u? zD?3)<cs(Dqp9F+9H~P)y*J{mIhi^YrUU6?T1RUQ+6FnBTwQQHy)?(vC0_Me2f!NQP zX(b0P#3Uc+{CtC_rtj2dPyX?V|9A>r%l`-y3OU{CbyFKWoI+5^C6A!@hRPw*mWgKV zFB%El*v7$|PfZ(#2BjOQr0Hp5mFgYtn6zl$qr7?@L}8~(AGr7ir|ELhb5LV`o=jY@ z)&n@qswXmYKsJl0kYBlAE@ITlx~k>jG6X8WNRI1BLqVyhOZv^c^ZreO#cJM_(mMi& zl{TUMrIr_xQDEM+o(5Z(miX*7Z!_`fGdC_%2J5DCZtFLbdP|vhi#tMs!YEsXOiXYc zcezP=U-xjzPFRlZ(UP&{rAyYtcj>imxDPre57^H(>h|gIZ(ui{)zsOitP3k3e|o9_ zF^@S%J!8^uG8B}=!E*jNd?iA(?3<lxu~o?9*;i3Ln1&<&J54S*B*L!z5C4C!<g_#H zNhY=?p<z#~CtHFeY8~M%B>XO5XET7N<*R!q8yYAQZFF%eVr$C`gZ)FVCUU#y68h&I zEaS&_LGzNeCC<)J!;!qZ=R{>b@_~Cn*1wdH=;&zaqqgfeF<{%*OIQLSvLVyyeI}ny zUm;LmS_Zb%jCYB61sYnHxU%!;y1kK2T&Q(RnI@?$7F=XKV4v^=wK&fro>Ux^I|FFw z=;!WV8Vf60l-H>*1qf2yy;6cHdqd1#JqIvOSQg9VIG8g8(m!v~cN```<L2VQX?_vn zeZmPH@ueb<I!Vb)w`{>^`<j{Hc{NF2O#BMNi}+1pWZv4*#Z`H5zLXX``0P5U?f-kk z=x<v29-_~WjNcum&RL37;KwV@0D|I-``}wL5g~oQX)6^`Svd3=6=jZ#wm+SmjfA^9 zk1YQ?i@=$ZS~sd<5&lf{z^z+rYgU=X$ROMgjaS^wcj!@XI15TTcsqEc=!<1&9qkzc z<96P6z$bDmdN-XsZqJqt5C>`7FhTCZo@eyZ&zcuO%^i!fjJnVJAyn>E61D-5G?Z{C z$6p1_Lx=Nv>Y1}7`W*6pdkOlif_J=iC`kZ6KW^%!<{i+i?+D6vhS1y0nnKCP^-Fec zt&DMEbe#vTd)0<3&=<5TIa^yXW$(E_Ih4O!MgQ`ibyj@IhD<xNdi<^(kOv9#fr5h| zv3FBA@F6~R<B{PR(fbLb8FVn@lf_#mEA&4*QpLAJ2jmdMD!H}kzWMQ)GHp2XC)Jh@ z_@xPvf^<6@wKONf2bBY4ML$ha<y(V?%$tLF$bC>-TdsxPtw*yOerbG1174mFg(FEM zDlONRRGuNIV>EvBmBS2PdqUIn_UEcFfe3J@4h#R^N})7>IV;WE!kn0{(H3m!l^+4J z6-o2tdMnG_6-svItAZ+1R&&hLtZHh28ClN16dc9wA@c*Y4l}s9Vj}}7qgA$;k$U%f z`%MVZ)C^w6OjrLrz`l*m@8RxG-ln@MOoN-{RtA8gam(UflhHQ!u2*$VVg~ZYZ)>@^ z46T)4V84I=da_Lz;DIJ~D2w(VwZ$)z->sJT|6*ner@=(3S()UR&QD{t!M8W#zGk`? z+M}nTMZP<!WjLPQSHD|Ww7_lL`8~mcgnXck?wc*6oU2^tJ!nPzgV&zcw&N=o))~X( z`W~d&f(#MKNCv!MxwN*Bw6c}MRsVXAqmF!X{iW%H+sEo8&2A)+ILox(kMVRkFD>eA zVef=Yi9hBqzOY~g&wZ>Q7U~sgalc))gD6whD>S(`<@D_T+}hRkVLo3(P|Ec{(b!}> zNUFQflAf#OOlWYi`8{cP9hJd#pulAIWIiROqNoCoc<=g5RiphJN{Kq6QID@$(0+So zf)77hy{`z_9v2!%uC9}t*vIim(naRC=8wwQg;bF{l0;d8`IQSO6Y{kuo(0Ybr+yYt z56l4*M)mkF;rzpLv;C}Vx$}WZV+y^(V(blGNTR&hc8{Vg4fb`FuTX|N%C^tM{6_&H z94ss>Trm-8a{^(p#HDzni}IEM8KlPAgN4G4;o8bXqV50-<!6i>#5yT`D~+;fGF6(~ z1nNojsOQ}84YZj;*Ma)t8^I%#(fLfIlvqWYiwU)EvD|^yIg4B!w0=e_3+b%i4fsPP z2~FWd!+gVy2eOZXA!#*e8I&q5wdZfx2W4~QSaiZc2oQjdhy~lC)}baP_oZ8%aPG@z zhEXnEdz{a0tnIp|b7^fXtvVXUeT(WIT>vrK{np}2rIC~Cg~^(@zj*ekN;On5>L(Jt zDZ~Wu&vF0t#>W4n<pbdklqI!(vc7%pR{(gf^XAebnf6(rSmu{O7)+VXxcm7C3Gyrz z;q5Zfd}JR@+TZ@&9xVLLxURS~C9~=6FRu6vr}|;+7X6gI%!&7%<V6RsqdpxuDZls| zypq2~5HhSrWAb;TST9i_fw;Ki*re9{9ufWXzZcCMBF10nTV+=00@~P^w|wN(##Ijj z1_Tkj)?WTl(N^v*u6}WtNO@0Nd(XUd`hC)zb2;K`@L1E$Jir`F-~Feb=^RtMX_ZFu zkdYL3Scr6>pxUCeRLBe|NjWQF=Uw-w{jjc4(g^Icf>ytmHp?oDPYcYDtY<3ruN-h* zpd8dhK8*L1ApRG{ag64UJyRYza%Se>s!dc*`=hu?({G$yw)rRh_>3wj=!_TQ;lGll zTSe`pwaU$~jtYq*Q*wd)%K6<kiT(QKHrT=COe=9rLv`zE=b%`-tp{>9Qu~b#_Nu!_ z6b?ySg#`h+5<!i?**C&(TRp9H!X}HcqxZcc2<K!XrN`?$`3`VAWOp?QRA(u-zqY zJ5vV6No@8lLJ#3yhUyxWoUd*rH4p+gmXm&I%|g`KK$*JmY-F@+kX2C`_3ZL8FIn)+ zLgaF3<IAM@5TRkM6jZ;tOK+)dkRo>&Em)>I-!!m|G@bGqshnowh&BAOjVFNnrz`Xr zj`>>7;~$WyP;4=56O?^kKg0LHGGnoTd0(dT5X4m)p5i(a4MlQo8p&f&3E3~wXVz4{ zDSTXh?9%m4LnwpQ)&l#lX_B<G33kxcdtl30ZK*o{q-7b$M+fJ6Hghv2QtV|A#Zt2| z+3}Yl(I~>kr_!s4N==?qpD)~DgtY{3=};qo8_^h^`&Ya|GqK#(**e*ttHuk<xW`Lo zNu`(~IY4B(Cjh!%i_J)DGapJfLCQk9-2m?}mC@PbcxEFj0YJ}s!TcH13jnBQspS8$ z_2uDEsBhRhm6Wy9LWHzQ_OfOxPKzWCAv?)Bn|+xvqX?By6j>)B$-d2Cj7egWE$d*I zu@A<~SZ6SXZ+_?GT;Fwl-yh?e_pkB1%k$jt^WM+>JeqR@iF7-k;!SW2*)LSqC@Cwd zaM^pdEQI$-wnORpwZ=24MsIUMY;N$KPH4HCJ}j)R=JJejp;GWGdfzsW;p3>x<W^Pg zJpAv5<of6<c5qKLZ;JG8RrJ8WuK45D`4puLwDsL(qY_nPKKbm0ZT!j^SdRG<3y%-3 zri^;-##s&(epJy@oeA?SC6y^PfI3O+TW86m-0tx>p;&sI^zfkZjrfPj*X|v2jQ*pZ zKRT(sG+c`Nb!0(-hpc=-sP$23Zq7c)Q0ncEf4@)NaC-CUg?5J1w<KwUxY<?8tr{oe zCyv5?&IdDRLu7}X_)Tfohj(TdWB0`nOWa>lwMuARoEry;?P%@V3dzs+%g3^KNL<JK z>CA4)9CGBvIRF^{#tMBlAX-vWGG=h@imAi9Za0sdai?nposOfoF!(oBF;7W%4&dT$ znJB@|9pxe)hn0udo&}VTjNn>O!Qw~%zmwzy+FpP8JC0wLNpZZ2K5VBiJXiDNb+AZ< z!cjo<anruPa$cAD=u}x;{A9*3^z@9qx}t(Sb>ALibocPg;YT{Itez{mstwp#jnj2h zr}OpooYQ`zKK<f0!>+6wG8=~b`b>}A5>ylOe0JUWe58JJxqc><IfIFL+V_S}DW#^; z`R8{_*`ws`KWBlP7sQnv#MbZizW#OB$jIpW#-D$M{6YKqfG%G1p`l6l^SLLz;ud_D zV2X0QhcH+)XIAi)FwXk53~R-$q{eCUo>BMA>UpN!$n)`y8hPK)b(&U%SKEn!1%!6I zotuY#qW7m4LVbT>ygzmZz+ZYldTHUMX?l-u`SHhna(>o#Gp`C{stf$@uZDnwnn328 zKRp+x=9ayVdq*@jDmVK8B2F4kZx5Yul;Jv~FPZ|iu`l+q?6^WC{{;AW*fwC_zoEWo z<3frul666F`I(6It%sq1z94=0I4B-%h%nEEsegZ@+L5hysN&&)RN-11e12pGBKn$g zM|wOd!#ao6YIWy+2EAQ_Y85r;)h{lXo%r730y=h!`~B~dzj<7aJdG4-p)%b`ji(nH z8$`6^FKnGXx|Vph79n>_DK-s*%JuBK6)1HY9@8aQ0jO;XrovBM-fir!uazvR#uQnt zK2G%?EY#`>7yw5>&2Rq!Dw`-ic)Xc5;3Y4Oh;MRTbva>nR(zq3mqVAD`AJqkr&lL= z+ot$?&k6Y+%@BRHW_s?GT=VPPIlL*S#`D}K{yFF9!BMJecMxSK5)M=t!dp<Fi0AAo z!!z!OM$G;?I{<}Zc((bz3ZMDD?4x)$C}v;CM`-gC*n2VGvLJ!le<FQPEgmQG`_2|` z=D)cT22fv$6zTnCcjN7Vj(yGzL7DUZb-+s#!JY|pdYTsm`KmW2*fH2vvRCMeeEz6! z{+isVZsuyhq!uFgM6mSx5x>ntziRssYl`1BLEjfa_9BvEV(U{_(}kZ8z%Yz-35~9i zU;Kj1d#%YozXo>T^}YjXS*YM4fEOF3`PDK0I_uX2b0vlO^&=;H{UzW*RR#Pr#h{<? zVH@zq8x+(`FPK$)CbXets(yR_&_4P89ffBbjz3n-^<2JYeI}`lOI_q01xWq|%WCw2 zugL1(hs^8k^a^0sY{1Sy{#iIu5`0M4fTA-IeEquIvCVM(rI^VHuacgjp=a6I+2#_t z``#WHX%1E783%Uj77cT-n&-y!^B1Ve5s&uEIbdn-9q@UI7gf)?N8_0YnE4O@I!MGX zVQmp-<N8Q+8*_xh=wPr}22_OoLGwx}O$6H~;!F|~I&f@}i4e?MFD6c?qcHN;^W;Au zzGJrNUKjW$_p|?V#0gHgKMPJOL?+!*F|r&w{seR>X2dL7S9sumlF$FIt99Cl82$}< zKlX_5tX0me;snOycs}w>k3abkGbnDie>1#v!6>EAF1HAFaYPnvrT&0^;BpD!?5GP{ zq<Nxa`=AzL>hd;t#`H(EsSxa}_|q4%W*=aTqB$r?^O~^K6SdBlsHw)}Cn%CJkGPvq zj_?t%(X$<*0pu#ipNYMEkcb7qjK*$A?f(V>D5rgQgw1_`UoT2I$i~Lg5ZIl~){B`B zs}IPYRBn0E(*BFA-I+Qpr-tQ0xJESa$#nhCw5$JL(@1;b+9t0~<GF-W=Yhr24#!64 zPsVK@?_}hix34@b$NTL2<3EO;ygJZxGctfrWaDjafU3ZT3-7+j)345`yaovM{LS~; zQbcRtU;FnZ4JDoBe{*{Hx#8V}6G<k^GJY56_Xq~D^o7Ft`H9B*g4k)+IRTI0V04jB zeZgVZ2u{YS4S>==)PNx#R*UTYtaYbdFOSuvx@8_W0aa*8DM_h$%rUxtDifusv@q9< zSJNaQR>333xeXi-+jfaxO>Q8}SSHTfbZ@61*57#s!YEy(1<{6OWI_{q$MQCU`9%oF z{DN|>tInrsGo~Ln1j<NgTch)STuqgkJ>?Ay>5@Ahu+mlYCr!zX^Uiu{EeLdV)M;!s ztC<E87yf0_Jlp33PIN<`F4Z)q4>od`vjik3RujjJPrSfM$itcnMYh5(%{Syp8*j;K zvx3omP4E`r-@TAPJwYBpKYBR9vbHQu?}9gs(D(JP)alV~O!hzI72r))#QeXtRMZ({ z_{wyYKmEd0y%~pW>G<U?-RoN0&Kv~^FBP#4^UuV!Uq-?J7Jbakw9hoHdeAmZkX}u{ z!ncqK)?F(v&DPDIIhN?NIW0H#F(>p(N=n(>618lB`<efh0r`xsUpKq)nYXJwc)fEr z+tmF!$<Xg;9ORM$?q)^49;bf51rxK6F7^c(Y>(k~ThYrJQ)9MyxnZoFcCBv}Ya?rV zh8hReUe-DMtX%3SBI~i}_KA8-cVp+&HFe|eJ9b_GU+%?zURE4cy<3z?9KG%Qo9n?t zml)e^`L{%%c)rM)^96_C)N4nuGp8F1ws+^@W8Jgyv>X2uFas<)n&=<$#wR#lgRXf^ z?F(VRweOz_%zF9(GT^Zvi4LLnzOzj9=9=iJ=XaMNrCq9`NtnFHP}Xk`92YepOc0#= zCU!%uFgq;lEmQ_?mr+W1($|y30i%=CFnwWE`_CzyiF>)jrXR`L9&<kW5qsHB9GLp4 z&)Ui0mJNuuIpkPuFyL>`&ieFdQ;y7;$u}W1VrpyMmU>N;TNwIh=G&99lhy+LbP5me zB0e77Rh%zqp`9=;`%(7}T(DO<SWE06IYa-U2V9qAeLp4}(HF)FNn#pTVBwi*g=A+d zKG#`8QkS-*POw8<TwMIK(LU68AhxQKuI81_YlyyvQ!ywLPKdbQE_<JAY;OJ5re!@g z!1I`8Bc-#f*sB{RTFst3NDD*PMle2x<H$o|en=SOgyCxk#L?E2Kkyo)_t=3C;m3ZS z`hLA;#2cvWQ;)}&Idoj<<cEHe2AdhtlAC87izCt}wk}gLZFgov@f`@(WJ^0Pd~+tX z`Ma}<y@gb$nGpm3>B=yyyG%`>a`!>6+4N}q|7E3U;I56zKWkiml51rmymfPlk(7|v zP2l(npt}tNVDD^yO-=?&8X&^ki7zK6)(|P*zrqDBp!INxLXv|kZMsX1;gfH{Qeo!l z6&wRAj}gRX60;%Wz%Uv6Azwb#UQz>O9pWGV?3d#E%n*0}?Ry7^fRTD)x)oO`=3Pba znf2<Ck*STk9^Q541LDZ)ay{QW8|SD}gA3<R8N9ch&1820$~fC)*)Y0x2z|6}-T9_F z%B0suO&n_Ak0;mdI`pXg*m;>3ksM%CpY`YO?K<u>z;SN=XYlo}ZUbdjoOAa3<Zb6W zTfx~=R|hVncHWbDyue~#6$Pf=A{Hb{>3!lpB0%O?eV=BBo;S`|FQ()HvRX&K+;BEN z5)fdgz2RN5Xz;<FE$rn^-Zys5_qsfr37GkMqhxWcfV+LSMn@(q@5M<w4D_zN`$?-z zDOCc@|8(DMa=8{DmtdM~oT6ETH{Y^;rG_Fds-ZAvfljRr#3L#4FM>qzAvGn~&gChw zDH*ztJ$ucL=;_88Q)?|)P|{Mde7#r@)wG=^>KwkzOgYqM#7I1kc59o;O+tafUJX}X zp8uG)TUduZ$L(&WrTN?XukcwqNB-hJBUWvdXLo&urgFPO@Gb6}ga6H9xJCLeHL=H6 zMVSdPt5+Ox2$0b}md_KN7~*X-F-r?AVz@b~CO%UHFx!vBD)c3=B1$9~yU<=`>Xaj< z#{Y~UPL{<M{*0^cXa0FH9m9EXGBvfPI{ao_dumPK%*&Kgryl0nAC0t;L;k3p$XSh0 z#t8*7#lt!ex5@xrd?jVHT(QsTC1~dU!p8n1;hi^+gBn=3NR+$j6Y@=TpCPPZuIQKV zk}l#95Ckf<9#0$4o>}$L9L-Khrn9}DQHvJ7aSkVUm_U8N;Pr#X${H%;g2rW{Xg?2b ztw?!ZbCS@V5#{;5mZ?ykOY^@{D3$7|@6cs<;>;w<VRRRn7w1pMc6t16&%<+_>$~^; zOQcV(mBj^4UcItg*``lfc{cO?%Xrg=GKKa}I?bjFo$G5q&f(V!xdfW2?iO=*KG#pg z5uy-h&=?PVG+G~|Wjs8oAvinxuCrUdL-~?|!X^8M<{G#U<tk-B#Es$Ya6bunS6W+H z=@$Z{2wnfhDWay9k*J?Qj!U!wpLn|9>O0!~6A_Y>EK&ENi6yS3VR|Jk)8SM)vi0Vl z0B&$oPDs>X-V{G2{LZbs^hSeVGP!--m8(E$w%!LcDFXl@TMku!&u{fndbLlIt0s3M z(+uFtlWff{qyd>`rSfK2YQ~ktNjiC<(+141-rYjEQ0QD&LYk;EdmBsOy1p5v=pKvU z`syBENTUvq+#dZnz1#m7scaa2teIw;;;kY!jnk69F@Ct?UewNYn=+??sM`ts>dPrj zB(XF1qf)BQX0fUxS>Erf3a`V1=v{SJz5=hT>+d`apdV|y7!iEkvRLfg9rq7Vk4V~2 z`{6zpOh75nhuncEcWDj@T&8Q-Qks}=YL4UW6bc|KTFTA+^8r7VJwC^z7YsbmKP^9| zIunvERae=$MqQ5CLODhGlsk)OM|oZt(w`?kS&lHs)Gp}0CW?r_C)A0m*YC$njj9_H z&SS^cAN)QaJhc*Q_1XUp#MZZ0d#4gjq#blZZ+S$_W@cz!rTFwltImxw%DNu&HQWcf z<2Y@yBQ*dt6zjAZE@0Iv;<r6)YilWfAU?4`9arx$-<e=9>eWejbEu=_$MDwK@WnVr z%>{mIHB?6A%+%&bEbOEfW7_fPhM+a?m?oC&W{(L8`!Tk1a>G_@5Z>vRb8^<b1!da& z+JBTWKLn~l6A+J@BqfN%A>{!P&K$eGbCy}pf2eoWR{eo~=Tv3=&S4NOWXtMmU+?5( z!485&j~b5V7xmy)bnIC;82_8tcXgVZfj;8egkzB!V;|EYSeEeJm7s}WIkQzkUe25H z^|7;%rr?nZx7(oCeJ}${YGKS}u2DYY)os2off|_f{+Z1Pl4#DX;;SmAZj9@e?p!81 zjTMe@-3kgYHi8M{iHf?a`MchDlM_q|A`eMHT7+KUZ5w`kXd8322%@CM(}G0(9!P8E zBiQp=N_Far8Z`w?%q`!rpi<McK&Qfl;hO+<9=~rM*Z;Ij3pRCV(~{Tx`LJ=aX4(Bj zh-K!UO<%|Ih`8*3BJz`?lx`#|RcY8zWp}@EqNuBWM*ndVgBAB-V+;=~%g`(X{9>fW z&#CI_@;5QX@=imvArXiHRaEb|uAGRt{V<Hg{lCJVW8OD^x@B*#BJYN^eeOED%%qoc z7YgP?V(SJv-wQ5kVs5-Ra5AaYmrSdmzs1onr}sPRSIipGTG%=Xr||yAm|^yynRSMD z+42CY#;kZ{s7>48PZBt{L~ktEYQ2{Ju>=e5Sa6W-G&myjJtK?(^*|Btk+tDl)%TJ5 zV?Rg#r5|#20bsw2E>(;gH}a3kRFMLbvV*#!)i!Jd4bl&~4`1(Hvk%U=BKEi*F$FzU znfb09A^xlc@D^+m6rtJk(LoRK6UF>kq4&N`6x0Ud?dXgF(PZA=)6n6zwI&To5l1>7 z%izX8h9i<6eQ-=MP_m!UnSJR3yA*uSF*fX2v6r{z1-#3QmNF$b_#15=b$kExz{&Ns z#)?z@;d<O|(A`u}bo=eyF)^%*XF3J_C6F_PRH$g&%){Al>r8fZyfo9>#D<W<R_|eo z_O>7o=(pn5SA{mIA$lG|n{u+V*hbg>BB%HIBODnAh@$nXcx^V-2&;(+T+22ETQvI- zzkp~16b*UDMAm)mW5uwg(4lEkaIM}6BW9IL@y#(oWU2;QTH#@s#3?+6`Ll^2BGKpA z^UFz}Y*Ajn<@9pj^a9&^D}G{twW>BU66=;f1ySq3=Jd#h|8djN4K_A~D)z(zYHILE zW98>}aT-<IcTc2c21IPrF}pQ^TzoOCHL+*Flc4z$&bfa^A3)@dR#h~N`-&Jj56KL` zfjmgsqD6=c@hD->VHb~)E=~DTSqT9(P4tKS{FXNiQxm=%U?PizCVe`c@AkmxbA}bj zCm|80f2v@JTbVUb9CWEwSVp=Js5N`<ylK`nENlo31fbKuvU%S!j5QltXhC7BFUwAQ zE?0zfO6||_0x07z(X(Pi&GQ1hsOp8Nr-_Rq`2_<SthTv_1FS7I0=c!$BX?oYnX_Y; z6YRZhslFh-m2ACpW*BjmO+j)NOH9lRIMvwoLHqcU!+R!H$MS~!^Sz#;<T%o2@94O( zpE9Z$_my;~Rxf5NGeBH`mkX1qNA`Es>#oh!G=$r7b^`53`v__v9k9-tc3}y;=qX`g zS;W5A@u-qCZwC=%CfueQX{-M!U|}=ud5!RX%Fig8$IaR?L3^U+N8RAawnBx3F8o4m zzJ5%*X|tP7%t(eV@6Rc%UBfHMR;}-EmFq~#O1A@azmvFaBYeQQZh;j$)g^j*WYg8i zxcXJctavq)SvtlR+LIcP6xK#dU5vIYxbMzp(lX+c{}n9bn)LA4?~<Z=PtIa4d}Zs{ zRr?_Id93RlRWFsf5E9>5H6p@F6GD1j9sJ9$sQ1HT@r`@UA3%2`UKMpVXIKf&;?LBD zD0QEbkMU`L1gfd|ZXT1FRrwkng@3ZDaJsOOG6Qq6*7!**FM%f?JFRW)W)Eu!8Xcmy zx9;S%VWKM@nZSkzof=XbBp?KE_~P`sw4g8E1*YyxiV0QhU7F352Hb~KmFQvfDV09N zO*Jl@7oX~*5RUmIQm6}?S3m%16e>}DO{Z=4!fwgCcYxc%lGpMW5xZ=`vXlR<Uk+jY z-y2IU89u=;+{q?=6MhUG)Fvc%<f~4reHdb}P8ik}e53u%m&T-z$rol_T(2)LVfEE9 z4M2Z`FE3^A&bV1(SYc7MX(!_6X{Z`}xQ{?DrN<(*+l^Pt=5U66kB=g{kSqGyJ49b0 zz)mV@$xRK+*p-a3;!!mKv2zJimrkLf#b#63Os8>G0Zp4I3h0!eRRL8w;$!~0jl{4l z_F|u|26YhG<*oNcR4ET2Hr9IQy`#8ro&EB<2BpIp!|X{!Y&1)gIMVRniX=Q=;ZOE< z<_r|uVi4#b@m5#8w?lDe;;VwhrDw&fXFw8}0d}^wJ@FFKUkIxbM~q4@jNJ!<k->9) zmu1FFfVm^#i=6VOx{yWdQ!0>v7cvh?i3-UlWEf)A$b(%N*QG|jT+D_YD5qlV0;9X+ zz)Z$;9B+_Zm+Ik6O|AQvP?C@ALsjpO6-Zb2j5>*icj2GM(`G^j7JmXflXayGkkv<( z%1Uw9oEjigA0un-iI<hOaqdrQ+lf0*Em3tqfb%?zNrDG6GC)4jM?>Fy&oZ9kr@t+` z=0Dq!M#|PB-iI=F?RpUmY)6OjI_O7H5n6{|8Ko$!l)lAj45p1J7N!NS`&_S7dQPnN z$@M=bL-28{V%;Zg>V5}_doO?iLFe`@e3T<TZgzp0OqJS%XTiG@AH2fzFh8BJ_2##3 zAf-s(Zi_zX=zEz7>z!04IJrgCk=xA#d}}6VP$cJ|l9}eB6O$XI{^U7<q>2^4qOu!A z3T2HPy-?C-7CSVT`GsnRLub3d8oXp1(USpF#5=6jyg0EK{9mfFo*uKA#FO`Mh{-nm zjyoeeivBH{Kg0gtTP1g+zCR-VZ=9R^kr=T()sY8juZwj%(*ra3v$b<SwAbYq&a;_j zAz%z0t6$FnBQ|mxSVv@lwJmyrcdesR`k-U!KG}&}g&o3bBk+!9+T)uh7)wBtha6-v zVYQ91O7WB#Qi?wW?OajWvSz{@0DL!2Cb<<(wK6N8=pWue^$hCwM(M4**w-BQ*W~i> zE&H%*^l2WrcqljkcMlAZCLU7ccFfJ{z8G&H7$RN-1}DECzQYX_jPG&Ch5fYU%^pgJ z;Y{6RGjAS5Xlo>xv$d|%^=~GGYh7UC-fH^J{c?(!{N5vao<&K5-uygf)%>wbn;W`q zQ;gHW&nqPE%RC;b3n0W8RSob?h<(qx#r+X@GBHtcKF6zDBN<APQ>KA6A4}l{ZvKF2 zf#agUPZ*oJbBx=>lBucqN|lD^=k*g@H%nVmm~SpZ)TL=ktU6mM`TGe?-cDLcjmX;) zM60mTYPEaZh+URJRwForOpvqDIs@8PcvEHQLlda$U(0P5j-mdB)B0L>eC&6pXE!DR zo*qah3A;PoEfqGij7RoMKpHAY?!SrTJWu4<d#cnX#pel*T*<KA{;bq2KaXuGURODY ztOD?q%*p4kzVjYFFO_h@r72SIj>yR~l`?U*x#cEjf1I=qb=N3<^055C;b*)r?!39B zdp^kz*uLyG8_e3Q`h3l*;Jy`^PDFoUL$^79*^Hs3gYN6qm+Ec~lzIF9b0cxtT}+cO zi;(%*m~A*j2ZudWjb2S@&p#R0l2<ZLNlTl@vdDcLHcONDB7P)(4E`(9fS`+y%(r}I z+TO}Mekry7lBc>`T&TD{c~Q>XfKp4m`*f9Ab<FWfd<@v^9GNcVc+v9nw<Zaq(UB`f zX>Lcdx>c+tbgd;tg*?6(iiPWZ9c@~0ecrgO+kFbiP$nz9im9VG?dq;&ak9LmiK$oa zIHML)K|8X>@wCmBJF2aZPW|1?F?aI)W&dS#YMgPSG5#awW=LB{=XRoj7J@N6H8s@- z{;k!>tuep-yO?h%*B%Xy7IoSf{o8$_$RC%cxqO#1{t*MHa}bb<7;3TV7p9N({e5CE z=3;El9i(31<sjE?|NEE(`<N?4Yqz52=?b`0lCcawrdy^S-EQVa*hk%L9gV)7+73fz zII?ayv_RA7>u|uxxNt*Pj+W?;Vt^&mH}k!8lm$^ldhkFh>*%5ss>Z}IfHj?4>PUZh zY@=}ycbY09sy#zR#<sR=Y?}T&18ZympV~xRLRZA=YU*BG)n?8r){ymGDk%xYTkj~y zh@D)&fxS9d9%+k#9NB-O)z{l?T(UT4SQ@tA9s;-OeWTvHDtExk!%pF(U5Ry){<VFq z(mF)WZK=)oN=^;G_^lGu#R_7k>f+-g202N}RYGN&uKti~ai*Z5(5`c5+#i^Jx^@kL zh@^quqlWb>q1kfJ8r$`MNaS%9gM#8|haBcL20<6qn;eX3J4k;p$U)2AL;wD%>TEa6 zG+U-KpC3(mI@>?4hi`1dQxDa)o3r{`mEOvAhs-n%rB<vfvk1nmgC)A3>Iu_qO=o=g zsWH_z(#qHX|JAzXt()hH9v~fa*#pvza0X<DL*AK+ikJV-#S2CLb_z_qQ}}WfQut)! zh55g)7Oi}J^r`}jb5N?bQ)Ef`=vG&k77bWHwwIiG<{XH(moz%_9d?dS&2)aVkOY=} zIg`A;k|_h|$u<g<etf;N-mkmaRrJdivQ+n=eJ<LS<rumaEK$&Hf25sJ-%&Wtz82k4 zpx+1sO%F3J%01&mv++@5H=2XN@?hCh@U_3IRG`_zv4L;8>X%vCiT=g@&RNI7W)!NJ zTiGT~AP;l9?sf?TD2-YmFy_%H3h`3wPy%3`f8;`q36L_ad~nmOjJ%g%;~D?8mn1Ob zn#iA6zvk&N$V&yP)y-Yg*Ovmx?_TnfSWJ|jTNuCx1_t)?*E4cU;6Q!P!wm`Q(jgNA z^}t#ubeIv__}(hF`w=pux#K}>C(L#CR}G5sjrzJFt)_{oVIDrdt`u9wYG3PH@fcQB zcaX=ucOCjue_b`S*VBco>S$xn9(vduysXWYp1;!Gx>Z4|WT2RVI)ma7>8-&bjI3Nu zbPfAQ$y>&5MctYb?;V_H4wJdwoOZYJT;k3mMW2<1+nJU%IEG`7F~AN6d%&vPS*`XT z7pPK|>I7{AlN!9iJAfoa8z#>=;}><LA?jq@O*Sdfu2xSpmr6sEt*xwb1@QrwQk_v~ z<jo`A)-s=u<cMA(+qgl?YR0I{m1_?Sc84<ZP6o9{mVm0ZPOWs&N$OwQ-CcJ@jo)?v z%kN@+H=nuHI1ZVXkENT#wsbq;GM%CJuv6n*M%~HXA8Oy7m*4{5O<P8Mc1c8I3BJpd zEr3dd>$E(yXMggAk%qEUk|QLz`Yq0cOtLVV(oR#Z%DfGnwQijp2uDqqYF%S(+43{1 zM3thE(zqXcC4fAq#eXAZ59SNA?Kr*7emt1B%0RtJUd}w#5EkYOsdMnEbLi?lvpq2d zrIu)(a2qu##{$9nCibwfj1*^e*OmSc;1RQ0_=ybuOX-75wb?MO?+Wh?t#*&S!-Lrc z_~41otyVEAlPm8LIlvyEL)=UHI^8S-)bVNcZYt_16Jm5~feP?1>A%?OX626Js3?{J zHJ~(Nr{vhC_89}-0xk05$I}K#Dk`3qG~xoQGmVX>^@f^YUgE<8m9Sx7_|XOUN5Q40 zW!m0?y3prEp|*eHV6>4Id1v+rVMEh@Z&|z27JmKPFL_+XQ&h=dciCmaJ_+%&Bl3J& z+PfQbVz~*4i37S3?}xMHgO2&W>UB%h)9B{2tquI*3mblUI#T`Vio)EN<0{BPb^D;l z)j|lnvSw(4%DPfVdNA|tt(q+f0SAopXb*VTBTeQR)IPSkw5o8J&{EN(um8sBtrh?$ zCE-T@8X=Wbioav9sX!4zp|8&AWkhtb{7MzOuex>9n(KMk-ds6xgyR0~VfntIe$eif zQIf&MpDr-Ot6L$3x}UI(4{sM_U<&nFx2|HOY>EiD%}&TJp;hz0ppE^Q^-oUoNm$rx zPGz2R$F~Sj6l|yJp$J$xEsYeuDySE_<kIV2%D+wbQE&)*aL}sB;-Y1bqfFihYL`(K zRNuqm#1?HV_Hm9-CI*(JW}28aF&WuEq-5-Of~dN1FdN>5xmz+18m;$!fV?)MH~2`h z<3Y5_P&Qj2h+uGo?G0ot%67`AO|dBN$XznRp0SUlU#Zu1%SoSu7<D6wpE?^Ghb}Rt z+R2v6=N6{vfpX+sdPSI-Cc!_g$FWH45E=R!k!asBmWw7I=tVqzS)4?bYin$9{kFH1 z<2*vUyFUN8+$E9vAZkh@3(FWz?hfC^cTSOwnQ~c6<Ow{Un?+1Gj861TtoNJxlpVG; zAK%kvx^mrfhYem`xv`4rhujHKmjP$6q+M6IXhA$=vyQLY#Agua?O}bgGKfYhrFS9} z?luW?PTgG|9{kW2er;3rv%*G3qLmafKx|hbk62j&>wPmI$ulKdvgpRiU-npC+tBA~ zh07rA^<znX0g+dL`Y5S&zzT}lWT6HGODo|rQwhp*T)7EPZz66#$k)K2d(FD-!hHO| zUFFu$HC)o#LQxsGE^yCQ71`eq`h8Qf*^XQ2cI%W)Cx>WS>nPqfQ-|TAp_KNPY|o7e z*OP05M2L5t9c=?4Aqb<3YbY8ajmu=lDxYk2OfdULC3DfXK3B6cd@%=;+tR@_Xk_64 zl;DfG4bk+$8n6|YVjr2>!*rC_B`^g^(jnfv88Pf|Bv*L&9EirHE`)h<(%Dl@bnO|@ z_PkbR#WE`hDAY{hP<q{DqlvNc^fA~750p4WQo=gCY*o?~%dk{x9YO@J<Q5ntC%4S4 z%#F23HH~yn{@Bv9wc1M7384>V>4cyjUfVNuDE7Y->KZunbJat2C#9pYS6A&$=%?3X z%ga$)2Px-Yhm&eC)<y4>oEtyN+bBUejmNbVxm_%PAmOGFVttx!d`3Ka)hlE6BkI)H z*a<_)as%bqH)(PYa)i=ju9c=o(l9GS4w+{x*M<}sU*#n$-4q`h+|#KUdi4fu`MDlQ z$iDUf`Ibgr7n_%btVltukhe&GLay**yV<8jPn>t7A|b0r8mKafkPK9?anusq7xwAT z^~wr(zyYkTaAFOYFB^EIuFUz7_I1$&VJok$xX#TAZB0?)8RS|4cr<hc;#N$mg|X<i zxIKM(9-e!9H(rnN-T)=en}uCwsan#S+EvAqac@u#(-uR^Z1S!Fm(mM`ldgmhexN>_ z@;j0&tE$mCef3ZW^|goOfgqN~=BZ$yAu|0SAR<qp{|lmO-8&RG^3e?~-Eg>F+JZQg zB?*uL_#$6=8mIzLU5Pk3<w-3+rD4wxPP^gKZ{frM?(@`2Z9rXiK=e<1SGT)8OnXQF z8;v?L(!L4i_K@2V6epI_D;{<|bc5|Kn}U|-b*&>l#hP4ZBz9rF0U_!{eR!48PS-kr z1@tH)=mf_GS?}kFhLH88Wq&uL;Nj7q+(QqBqRLLylx)mVCFi=eR1fA=x>N_y+}#14 zq+IjxboZdzwo0Kguhw96T<Y47ck;RMW1AY8ADgs=@sxd&m-}TrSl1qBB7n2Luva9& z%Q8csmq<uQU%5+AGt}p8S-LgNMaMJCk_|h8Mz`xO-A(08V^1;;<4*zhcPFC#7Ynoc ztx1|2kuM89UMphw&C3AtWM?-{s6D$;g4lkYGo%ej4(u^MLQPb5TbzvEKK2Xetnsyg zy~*GbYiG0OKgO3(8ebl<y2_YKa;F|eJH%iPR?YQJy<046T#h%0C?Am6%kh3K-pld6 zv2l9iSi7{zpQ_}%4Zq5M*&icwsPJ|OA?lE00{z$1G2ug&4kc^L00OkL&CQii1@695 zD;`;R<i<rnR9Yn>j(d=)OHjvteE}`xAujB?ccI3WnMEAw3r-}tdteWvq|5V34;<9q zj3HO5h;fGt_FwPR-0u}y+zls*CA{1HTx-xS&@XHw+)QMT^2$83?b0mBGCNhOOsO{} z4e19THG|`T0OkEO@h~S@sSGFF^`v@;j#uNm51hex5QV-TcCqzgB4Jw@KGodTeuo_6 za^-4bPmv4Mu5x#$Hx<D_;x<~87uE^RWR-uzE%$h<6f`4Jul{q+g+)W05#KrxX1$N5 z+cZMa4^Nw<qv4ybZXR3XQNn8^7~{*&Kl<I@`@QsqH5O|;Ch0oFs#3T?J~%Y3`eo@5 zuUYrs_OO#cv(C24D#>oCjIZUIGQ%#8`?vSiu<Nw>em-ZNespZD#$!7i115sucHVXK zx>gz~o@GEVW%LinuOkWqc0c<#h22>*8h5_^*qjx~VTNyS*ZG5~wJ=dW=VLJpDf^JO zsUUh1Y*Z^4sITLF*!x*^0Xm)ig}(}u-pc#}$R=MLYP?J4bzN_{yP_s|H3SEzbm2&9 zJD2vtu&?hPh!o_XkX3f9^>Wti>o&e-k@81}JxDYzI;DN)hAi9ltzEQ@JYk(mz`UM5 zW&gJQ;<S?aXte<5L9|-yc9S(EJ=!tIGMtYxb@n-`qG9-?RE7w&oC^^wGQw;2mjy^X zB3oL9=-fJ)Eu;Y)%+6KUpH~hjuF!*kkRuPzg+^q;)d;C>r|V0wnSDbH;(_K>w#+jP z0VgHuG)ILrNs5R-!+URvhq=KzSmYECjb?uFAb?w~zS%SYCpOo+Kdws66R8gX*p(Vr zy3k9Du0;4UNWwewg$3F1Aq>)(iqW3)RuSEcQ$M0jwj_<6ty2#GCD4|0kQ%!h8cj<Q z@NL#$t49Y)$qMN{9ViJfEHyO$A>Nz|Qy$fiRg0f<<SLa!GFM-PiOcnqh=ai>k$Su< zv9b;Nbkj&Ku}F7OKQ>(ceVQR32(axs^36z<q#M5sxFvmRcTu$Bm940Nv`*RSFD0Dw z8RG4h_OQ)#F*k;KQoEi<*`@t74vPSy`H5t9?`O@_dRTk5Wn9NXj-WN0f*>P<ifXRG z1EK?Yl>1J*vzhf5d8AjhO;C0>16c3Uu)wB>Np5cr+0Osc%N?(N-|)J|-`V69ARDdp zmcQpJzn@ng4N~uZR8ML0B5;FMd_3l1nb4hEiYNIUF~KFQ4UM0ui8WIHTl$x%)RXrv zQlrNxB3SUBPU<(hzJQF7K|>|cU+A~)C{hdeZFR)c<jT|S#ye-_cnzX&*rWf~6{|s8 zCmPWnOb;}`Wi_i@cSZ%8^fBI7Z#z{x7pfx`za?wG6`Y$vyoYV~{Y>mmp6)I{F_+z^ z*>$74KM@Qm3Ba%J)U<^8Uk648Mj@nzf&4$^o*=vUH?<#e=d1E1Nv+ZTs;CXnS`!+Q z9Y1{Yk51@&jC1NdR#qxvmf?)pbZ2*kG*-0~|L4{Ee|z$A;NootDNc!#lSiGeD6PW+ z=A0BxVwnz$tqOBoX`cZ$1BY9OwHoFWR_M`+td30zfy%=^9u~DQfu$$GB)=DX2=zha zA;82UCE#W19}J9_M5-wb^f?AJ#(w*)&YO4hphz;lzUm2N3mSVF0O-aet1809LWRVI zt1~{4kI;Z`|DcV5G@`1VnZCfh!R-n>OMOQpex0a>O0207PW_u3x&T!4A`8LSaQYks zXok#RL5zxkLs+PHdNlsT^_g38L)l$7si`>^%Sl<7K8D4yYDjimPmMzhiK1see}({2 zKFJuZg|jtma`z^{_ssA7jaHP6^E=oYS*;IJOTE<o^X`IS2lsZ*g`k~ok7v7nIzm@F zHG?J$2euI_8l4$+oeR9=%UoXL^h*6eNUL_)N3<*Rc&k8Xc$blJ;AcZgEn!njf7qMW z;mAhp>js8qL&N?0*Ei&jkB0jiZSKns?eJG9<QwR&HeDIqK-j~4DA}u-(=8m`esEM+ zXU}__{wSGz$c?<DQsBQ`u?g(eC`c^!j5tNLBeqi(+|D}B4mDW#>UjhxJ7YTEoUo|? zcnh!JR3CI$Ojde1TrFwcLtHH^(k}Z6#TC4UznTgFx89MMu`T*0eO%(d_oKz5yLW{D zcly857xPo~cO%<(n(iffPvfe_F0ekcSqwCd7AwHizxO5gE^=qhGiZLYrKYK0cg}kO z1()<){NsabD?I6swNKZ8a^8c>_ltm`LRMb;={k}{ruQ`zo83-2>HC_%PtAkuKdI9U zlHU0_gg_E;{;=*a{Yz23%@xcVgL;ppD++ql&wxRkKq7;k*`V|z+n}-SVe(dR`<>gc zop91nBZ8dw3%ZjwA3blT8e&;Lp35Ffzg~|ArEuN89S)88px{AS3p{FB=j0};t`=Yx zwOinTTN;15L#ZJ+*@H6wJNNJV_js0OpC8XVwk}gx*4_6)puM}3KVH91dG+-5s~0iZ z0+FqO8Xj)nqiNsXNgOsr?X&6SqaV<Wl(=!c%CFGxoNb4O(Je6n?DN;p_Pt2E*Zu5X zcLz48h(u^%QyM5GmR1x}sioB?oV3^%@IXlbX|<p$I-3ITTKx5IXc^zl<s#>f?1-J& zsw-@Xs~o6Rhe9F$NSg8LW~MJYAzEabW6_>Zh^G=@i~;sghgv}Cfg<V?0GOIxs*dsT z5LO*^Om9wn5>QHZDHa2#N|n`M58Mi{$LIjvU`_xGnTld&#Sk;bf%^EB9eO+{5`N`) zx`w?YD{z7dt-n4tL^2>Vk1nRx2MpKk#4E7ivQMFopn#3A*4Gl9RGO`0YrUKVs1|E5 z{87qNV!KOlZZp$*Yk0<m{k#Ik=zDh7Cgu(LLf+s8h<|1NzSwN>s9<x)c}qeEy;vgP zA&1)^9eK#u#(k@df|%bV;I;<JM&!#Ht~}!3J9b}7YiYQD6K*~%dYe<|ggT@P;oNI; ze)F1qYE-93@9?l;T#MnK6HLdK?B2C5qHvJEzeVIU)}`z`#bT)^B)(~L=$?#*7=@Cf zdo4AxtFM^puuxvc(vKN2mESksv%=gmU#TLowF<}iG_(!{!_}u;l3eN@48D=bb3E~} zt7%$QkU((?nbU-@jHZiRSG|SqC1~3-!Y~}ROQ#=re;2#qq%bG~mf4ERrtFTa7UEt( zZE1iY7Bt*RIoAn{p!Y>sq@PcUD8<>FYvt-2woP{gvA;bsAA{l4holS}5=@rsotXI# zzAbmPytqaRaRbZ3s@ah1B<=1yTg}qD8+baAyu&=|uqQpn6I%Ie{2#u=S8ct}GnnvA zf|FW7L{eb$z5DxL^oTUvH#1`ze3ku6Kn|*{*|!dmrjJAim_UWFsjq3zxG(R?<{xQn z;XZI>uM`cKKfKd$_qv+8YJ2ZaaO~J@@0BsEx%g-ZT=#As#s}D)d~l?EQ@<;AbjS&7 z5$`Wu-^$d@4whcDkg$+CQbR!s9|byVmR7hG?x#>w1`HZ$2Vy4J$AQis5r<Eb7wyJw zCtwxOm@}!Y)(1F3$Tweb5OHPf?BlWNj}4Nd-apFlO7po_MRzz%nkd4b(j|#yjsPf5 zdvp+<TCv}%mzjN{jZ4FT$|aV}oaRFKhkoIqtn6%hNyUb-`)puv@F#9wy{#_ILy0#n z$`Ja%rzaaMP-pcp>G&hQ)rXNZkBgcCs=nDV-b$!T2KPzY8%k>8;g_i8K98DYYA^TO z9U6%}*O-W>j05>*bc+Z`+LZ2GES`9s{gz81arD#k0AEmp_dHpCNSl6|<FeY=7)Lvw zw6(s9s-fVw>?#{e;KcJWr6pKNfR2;&*0DhAkukK8zUhi_NT*8G#%NGC{(0x}=EiJF z@VmhcTOWY1jM*O#$5P^!Nb=8Iypw)jz37Noo11q2Uy{cuG;I%Sjc+T3GQ9s8W$SWb zSdAwVKA6(9>-QR=GgDyGo9og0$nPQ}^}s00MIT8mK}#+4UXYcJOtIP+F+C29&-tmA zBZKD8$d8#g_nNq%$onhGjJA+?)UeyMw<-3xLOcbPA&ECow%sy}5vliL2_;4-Whlju z%zIw#<8D)zpQsh6BnQx5&$s)4;ubL$<Q6VPI6kog%^*bA5L;J`?x_u{p+Lx05@a)L zi<1MA_;Qo1n|<0rIpSA(3R5I<`-ckx>``X4Y0)4A8q-)WE2)}=`pETzFDk-Ceag^9 zS;tjwNugPY^(v2uX(dG`G3<YDisi@lko7k#toNP#?$qLnETZKg+w-8KrbM<Dons*@ zD|@?dk`vd}5eS8Tksv@)%GVz>1<PrmbUgFthw=wE+}^NmXtTb!uy1zXW?(Y|Dzdb> zIgR~D@~6N|YMX#4A3EXhKl<k1Q$&{TW`=)+U+Lc&tEnN-#-aki!K#ryo9+kPPp@x$ z(p6r7|3c*x3>d2oK*B)6lrHxnD1fHHlpw~6ZxN?@g)7P=+z<xjryuUwwXuDt4=Cam zBdN2+n4)Iwk^WTuSlZN*XV>JI>b(`YMexgRqPtKQ%#A>#BYjS#q%6NRHV9oBXO|_| zo!MLbp~JuT{wr>fT3i|E9({k1ecKpWQdx3wK>O>5zP>Q;;S1x9((N;bW_s(@rB2w( z-df??TK;pD2f|LMnKUuow7z+qjG~zi)~KP7mdfUiHL4j`ho9Onn3U_aDJ}%9u9Y5; zliI$h%WyClHwdzaNsQCDX@ICsozqYIpHVvNX~=p-tRRcPcDdw$6E>nk$OdNR@XyOw z+^g-O7$WtsAV*aodV2LeeC&r)^e`1PqOldOdB~UpFq|`_6D6ottw+o9=h^PorFEO? z(uM*JMZ0i7_fypcoioK5=D!pGn`xp3>kwt^T1FhfIU<W#xo3X)A-tdPzk5F+1G_O< zmM*vbB2U?*Qsj|T`L^NZBz+y7WbUKEi0WTRq=3hLVd=*Fma}wr$$ZBf|BYUXisunW zDN8p@omg$^af!hbN>YCbUuJi~$Oj(=ZD5YRH3uBQ%o2k2+CDr>D56lmty;!@iRI=4 zFq@J!6SI=sR+}Bv`PPA$$bw(si0p^viLO6=IiLIlYn~Gr5OxErk!7c2eD;2l__bDU z3=Drng~Ivlpw1Ux^qV-N9iygLH$H{xuGAEq77c1*f!to~V}`;D%WB-sb0h++|JdjZ zfppYjSu3P6j*>7CXS|X`f94`ByQfmf^L1y>%ky#%{y<yX3+~JLgxUK#TymX+#ig{7 z2jTL@c1o$~-ISMQ(q=qc#uW}qYaLfp*K>s7mtv&d>*rkOe#R?CYhOqm`IR{NBfY*H z^1M4rSd^={H=?mvnXn&HZQ@)#I!M3hbB`guHMQE1jR>f}$ZsVa{mF*l+8JT_nK;3! zq79q7amM*%ft}9iQd9*_$TsnC4WT<LAgXg>z^(=wPSoIRr(3sLB>w&K#&T~$>B6@4 ziObG9q519`q@k$D%sMf1$RBLL$v1}6mrE9_pl1_WsKth_g*hj;g0D1(i4#|$tLqAh zH9-8<%(NtY;2s3o$&u$KlTezZP`9;z`T5*k@wMf@8PS9w2xE<$ZBuQQa1z+0>G8?D z{?{O-=+UUz)jlI(){A#W$->h554zkSf*>Kq0+w#xQf<qxnWHM6{#9a^Iu(D_6>`qT z)ACD3LrU6j<PhG%`RY`$g5z{(<PGIOVuJ>N+4MGkrnxD&VBpEBexk9I(fZG46HE=S z%<d*G2>KQ7V{~JINl`7Kkl63s`%NePP6fHKUo){AX&MKd65C<Y4E;CF6G5wulPn)% z(3Oqa%nz5<oX3V`&>tbAJ0jDok}7%rdO-tYV*cQWx;48kgb@rAfnQwR)>&_aWRQtd zSI%U4-LTleCc+ob5u6a4Gx5~lEjM_0FndjN))z}+HD@@(NMmNpTcKjh3X7#A?X0X$ zbj-F&*6D_D2KF}hB93g!^qvI<{=jZKnG4ulMu(Vb%>}5$H8DjDy?s)R!NJQBBW?Ta zaj#^|0+>UBOPKL5<^XV3*Hc#EtrUrpfX^hsXVC><07El{l0rxIzz7QuBhZb(_T7DN z^`M<rcj`#YYY&_bC9%Ss2C0DNo=uJ_`~0EefQJ#5=8at9a)I5mcdXd1tl+dw@S&Ny zt*0DNt}<Icy2t3qXEfe(^~%bR5>XH5t>eX-`L{MV3I<{kCNP-OE8Bv+6?CX$E~j=i zY-T8&#I7>q-myX7J^zD<Q}uy!{|<aRND;eRCP|GK4=M*#(X-A(i(PTb%<`^ycv@HN z)m%ix$}vX_(>1N`&lINuwWuO~=dOgj634syI@M0&)>MB<ePMOU9nx!eJJK$_HCjTD zGJM_f*mNk!#?ax#TZxi^=mqMNrMFxvs6TsRb6YIWm^flG9p>(6bYoFY01{y^6wXJD zoTH9>j}_qFL~%$K94;{O8pa9O)p1BHdp5XQS8`k|5vS%;X?Ds+o%@qmjM2u-><fpn zv-JQ#ShhyK!3*~dIv?#ovg!(#NNGJXf<Hu@nk(Ws3B5|?G=(&-W-;#CQ}!s_JWud{ z{Z_%F9+cazxhI_rwEhTdN=0*esngR@&G9079-o9s5qTkGI9jb1VtV$It{0fDU)$e7 z_qbo#pQ#We)5kB+10(ad@*>6K6VHs&{i`Y;MAp@Tpf>)s=mUtNpy^;5@C#}w=&9q? zf{T-7{F2kObHB`$2puIr#&NcbW33ir*NAr{R-71Xx2SnAFTfrq=>ahsTvjg|nEEBP zORo{xc7cUUjCN6iB@rR>F!e9%;q#c3V9yzDm6+vH&NkZbl=tbdv7~AEa~T%572^iX zgfYYM<%2u^g8OE9BPlu-(}xez9C<X93nC6hJ$)fP3+F?eYUGw7IFhyg3zz@Fg<rKH zX3Sh^_|7SY*{(ycsM{5#?_a2=q5KxFz4Z<B)_g0ztu0Lu>;3d*L{??^E3CB8H5oI$ z)EkG0$wrHac@r4hEjnUV!~U8lS7)s1oENY=$J+QvPKHA{l}nN1{{^T~)!oJAq) z>t+w2n5Y(bL9V&z2rUw`u7U2H(Q#y7r-ov7pk#*pVq<B^jxKE?L*F^J*rvIU+XXQo zB-5H+Yc45|+)=0@T9k^)cm)uk;+~D?{>r{?$<h6^uIp?wHD_A+;lmk*<yX>V&0t&g zn(NGIFP05wb+AHMp+KlE(I!F^LonRZnSgJ?mLu~-&vQIi+xKFp3;uV)=0k<U-5YT_ zSJ>$tif%uLW~Q?qwUktAWpMc>ryKT3z&$?QP9zP$q%#8*znQvRLDxt(ziBsJxOt~! zu+S09BHhv6K6M;wI})b=NF6Che6}kHQB=kh+t1fxb_`;<={}4@1X~vz0R|$kN$XT^ zH|&5N*h4$eO{4ftj1%jk(Xm@GgV>T1Jxvs3tHZ}0ruQO85No2^Pq+DFg?4QPYH}vr z1t`J(X@rZ%f`O_1H8qfjclbC|AF!u%<yu7rwise+zf*f1K6h}KNbU|P8Y;$S+|XOj z1y6QQ#mR)U>3{r?N+;u_xt|Du2>rbo*oaowS^IaObtQOxfs!q>5+OeyVDY}?*8GE~ zk`Xsauue)rRLOTOT}J9P9s7mBl8lu?N!@2>C<^M!QqX5f_x!J-N1SMbhi;<f+7B;C z1(@$VkpOuc-Z<q39ixTbyYO*D!^s4DeerG1f=1>jja{E*pN^`~Q$~}8$h_^W3eI}{ zp!z3<iDaIXc>55FxjmOD0km}%tO+UEq)HGq85ohs@FS&^fNRdgTWChC7*97Ldc)#U zvd;py|H925Y%L*5{pwGfryIJe_}Gb7<^V_i(VS_y-l5^uXYc&lPhC^m4C^<Q@+~}L z&`8NlW|0ogFXC{!Q4wKN@tUK;5gSH!|FO^C^9j=bnUA%Dwi_`Wjc3!6ZQtEn{Nw5B zruQaK6LZRKc8%Um?#aEK_;cCs5Lmgpqh+a}?XK5Vw4L*3SG}7GM$h;4jYs)Mta4dY z12=EOkDzpj@Nq<b(>3fMmr=w92{0mQServm#AtK9Qr?jKf!4*s5&+Pk|5=>I0mno) zU_dCRE+=@MTkd0_GjT=}g?9TQ4fg?-om*M&g&%2zNW$uss@aXj1>U)kck2g&lAnFC zREj8bUk*uaN4UWx&CBpLrWo=nV6#D-Fw_{NH~`&B7Ft<JH9<OWFUCuxLf~6{NFf%3 z9MQ49N7Q)|q$CObcPE^Vg0b>6$=kj8w;4E&&W$bptDbV_ffcO-1rLyYkMs%t^F=4^ zM9KJ`A5ZbzRF<M1d$B4x=rJ-jqousYjFQlQAYMARMlVGr1k@Tlu2{+y;6HC-+Gn}c zSxIeWuA=^O{tJ_U_^fv*o8_mwWjX<R(jX|x__@`(h0qG~x@T#JE?vz$W;EptvK20z z#|W0C=6{X=S`$ZNTW5+`oy9uI{tv^cb5k|9?jF-~NZ<Z5vSau&_w~_k>&(@BjLUaZ zl@@Ny5Fxi?yuALn4kJ8UrL)3KS4pX@+ss<vLknneqA_diRnCr9<8a429JR|<`2#YJ z-4|;xk9FE1aWSj(z<;E)uL(W><`JIc3G2VcvUZ3z7vRku9x?~yZ*(39rk=++%mMWi zRa^S+NJf$YzQ>3&ZmhYUZf=Ujf5~t9;`(VY&etCEMPv5#O7&2`e!q32nf8dirkUCB zpro3J68FWK`GDN5@f9NuMy}M0q*MIh>r95cgT9*UIW>F)vSfLkNnq!|NAt!)XxanL zw+tHex5da1i8iXosz2-Lwe9SPh{q~8V3qJ#Q0t>wJ!g4TG_h~t?vt@z-Lem7kY##z zkD2g(qZP3|gDSs%TBgiYQ<gVSOz5K*Rt9*M;gYw`Br=3@uW>{+s1|FX_=60m*A>tP zY@8)k|D#v?9{ru$eZ6Q;PCC9;a1pK@OEluc{^hZBLsqt6EY@OUtYcjqSOAP`4V5{- zP4nx8Z!n{qrxSBU=S&NpWz_wtg?)b7PH~?#O<AkK*c+I7cgzm~O3f`ImKfbFNPpD6 zTJO8ARKl;tilWU7%=&reiiLvb@BcYA^hxL)p$X`%HQH!K+ah4mrhFB{u(_*afc2Hw z1USdZiN55h4+XIn@YC&Ce0fewaL)KD#p1IgXLfD8`Li!f6Dm)h8ogu?pdBjZyxPff zx%5H*mQWcwXZQbbb>;C)KmK1*lyZkcj+9hLMIjSXj!?Ppkjgc==9rNXQjT2ZOgTcs zunjXRH)(PW+srLy=G@qf-#*{Zr_b@*AKQb!_I~YkJYU!IwN8jE&{Sj|r19w-szfdN z=-4N9Q@r?i5u=nJ^UGt{=H0+u@8A5%&*JUXf4j?rK}{=DJ_i;mzb}=FYXPGI*SD|7 zEEk49RpzAU$T~S{yqH)`y&%~f%NtQPp9eO<TxSkC4v#)^z=-tOTj=DMMyhQ|UDXJy zsOBMNAgG5}{q!fi(gBm(#R{Qkz0f_Im8?tI)PWJltM~1Eu9K$+#~_eTo{nIiBjh9) zbbeDcgwnIVydL<VL36yto2=U*+dM~7wyG@Ax`AHVDu$hhmuJ%>pI%Ot1fKHA;MdaH zDNaXF-@h+%^8PA0Ht$-iO%1hq)2%EDE8G}C{L0qpgi?lCtpv<;^oyU^$Emex8@|0u zAFV3vw?{{K|8^7WYCC&J{|B%qo-L1~Nsgi0{>@&h45N1k1^XTqw~fBbNYFbn9y3HM z8cLQ-Y;l3HmbIJI$cA^&8Cw&szXk(VzXSqpE9^3jLCLCgOPnkDekxrN!%&ySA#Ngj zf0)73u>}jE%w8XNtx2j0VOY`qbPl=(Zi#CKO4g=wQwuc5aqWm7ZxK|oGdbKSm^s$q zdP%5(@)|rC3h!?pcN9Y);N=Y9kT=<eStH5yywa0GRA2UB#8R1c8U?l9<Z=wj;4mCN zz6|N>yb$i=^`^qQPfqfB@E7u*2Q67{@NMVs>%b_Ctd;G-m3d7~>i4bZO4B`K&z`C1 zj8uI-Rk^?FR@_mp2hem09rk?!GB$k&<DT)c&&%!{^}6#cW{<70tAfK?h7C$y#a|!E zqmY)>mA<O^4B3^K1X|IsL*9?_@~`aDZRZDz7z4q1p)dbpPLc_If@Z2dtlu%U_$9f2 zE4TXFFgpn5ejlvCHpFG#l6+%y#Hb|mdDTAF5^($WwqJ%ai&s=z%|q<s(S&3mC1raP z+CJQLL7VD0E)CcIiN`yF-bxxW)O3Kc7}o@F)7AXr?Z{bL$C~GoUE|}?!)=)GxRKa| zdEjT-bei0%IOAa+%o3!9Ed2_y(BpDmp#zUoIYpOA)otjAOE<}neSq+GKMC?Z3I<~m zd}yJYXQAw10n!nN(DoueW(YoU@rblCo}`MxMZA<EklXd9%-qLvLTRt5W;BPB$C>2u zX5tloV?nSsl~4BSx+iKG)lCv(vp=vxdOfbm9KH1q)!|Lvvn+;(|Iu*#D%kuexo^Jw zar3F<W{xZRCRG{IsM$4fhf|ahr=lVeHn%7SwkH(*jf@K784g#}z8~kn@lt55){TOu zz$5GmxDuXKT_f)`xhJ{riC%mHZu$hfwkpFB&37<z#1)n*OTWA+J+HQbE7ePE-UWOC z;v&pQTX_Fb;lgp@M8v!T8?dLALGYA$A$M#9K)d|}_3%^s&xxzaI)tc|P+U&lei}|^ z`yPLG_qDIkj*NEdr<d)vJ*Q(wEcO{-VnF%(NoS~Y=7}U9il2^leQ#tV#1BV*QS`pq zsXJA`#W4}l@tJqd?ia*rmR?$xJG<f`Xu30d=O0mQuubnp%l(hB<3ntE<7&H)y<kd& z`H)DDEr?sIBE#qk=@Fl`xQ(p28StL$hE8gLI)dp#Y(lHBsq1kSAjP?n6fr8?P5%C~ zV=uWCD0jzJp&=*M58!aP3N+wVtvY7N(lIgrcKLVE59So^6Qckq*$vqGbV^~`_3N6e zWcF;hJZ`3>sX6R>M!MwJ;AghyFbfZkhfBgE>D9B1N7IcM^<!sLVVaS*K2rT?>a3CI zTVx2x%pb*U65#4@{0xJ5NmBfd3?u4eFyvioJ+Ii<`kgVHe4QeC+KPiqTXArhXCrB| zaXG7Ht1{m3OQRFlKTm&?7iv_J_ZN}yPZ(=a+hG~vD|U3{G5bzg+}S?W8qj2`D9l!I z-@cnAZX^9*S8%oohT1a9WNa<Xc{i?ngA<-Fvs*`OOFaQc-r553^b-Ifc3`kB8#l=% zk7Hiy+_-0QhR1t)Uw-MO<m*QelI2i`iH>vo2mGs*yJ0(kYi$<t9@E?PCX-Q&S^CyI zNltMKa>?syWp5FaaPRYNbG_Z!OXSv)umiDI5(3zbUn%!$m|h0DpTbhL7N#$#^)+$1 z160HK+_Qi5Y@SU@D3udTqxHDm;myhX3erjfN(d)BD~{j3W}HM8^Fq#I6Kle>GM7o` zwO3@HX@HOF{7V*Mt4?FTjbd#X^~Ep5IGkGJw3A`DBf^GZ;{t3w+1FUZpcN<=TN6ws zO}K~SQN3RnrKRUihRob+q>h!>)mnQ&&_4H)ly#);KEVMRDdIOD_Oa~+ZfRYC-`y-I zv1pHj5^T>+V~#B=YLPbYqM9RCj+=L=57T)cnYq8vvakbti*3zQ-943}$jrMMcZnF* z!VMXWPx`prl>5m!iF`eXY?8N1BU8^PH{VJ*@f}?5($hm@vhH+7pnyS)L@(WK!OY2w z7j%O&FGXFIM)Jl62UfGQhk_ohU!XyWK0uAp4Eud+v6W%#@Q8!&DXc8Z(e*Em!9OUQ z?h&XFy?=2Ehd$fcC`s<f3!YUwv?a&ZEPIG8j&~E9F>hU&jSu5q5&&7i+ow00Dl}== zA}z`U`9EXN+c)_gGrhh$@<OD6ue|5s3qC3_V(h>f*H_Qjv~>={^0tzzp4Rs&)lsRs z9$2lb_UG^OT{Ay1IPY~t$*y}{AwYXfO$?V%>wA)7O>*+QL_10ySGL13Lz8-4Gn3(3 zhurECnchx5?#Ox6Y=*zMSAN)m=hbM){m(cRM5bI{G~by6I4F#8f`}_Oxxwj=Ft+g| zBl8(oW^v%2^QZ0%;QUtdJ1Srf(k{dn(2>}$;vf~o(eCqXbzS?uoQ~P;D9Oj~Ow?ci zsYw9(6UyqJ`tUzb`Q%rBsoae}^(Elu8lBX<-6<0-8P|#2_k^d)=9>gtm18B$7P^B2 zi4}@8;Z9H7_BZ^BJpd#&#LQP{;tt+;t#XEuQ#5mMhFTA4e?4|m=P+5NCErkFf?}y^ zu9FvgS5+G+P48ZhJqf;Zq9yiS4{%%eM*(%4aupHeuRc!4X2DH|hJhZ$bh9QcXgzM& zb41+n#jq!%p?R6wG?spp&C}3IWB)nM@9UmxInx>SNGm_Spyq2=Tx;sn@$D<b$I8W3 zkOm$0u@*ZE6xQd7Wq#<TNO{}<GyN{&LfiOcxCdohbV!vI_nu^pgoh6(j-cU?&+u_A zD-CI=Waw?76fA{+vNFl~i^1uS51wa#hgVjSK3sxrBY}Z*5}YtKS9z(QEc2vXd1`0r z`)oMvXc$#@8SvDgWRrz}C)Y81BADyz=3-~z!!skT&YvJj1mWzsDlT$3_7hh^74!A& z2a{{R#v13}zT-`4#{<1-J@ZVAE~bFH2xMjPEBk!Dx)(cVJ9cm4qlh;-{PU#|@KU)^ zn!?)b7K-C@&uki!!EpWzMK>+M+-&u)TPKSV()kcEW3LZjTV!syiX6<8veP9aER{KD zM6~;Ew#gK(G9g1(h{hebjT@nPV4fN~RM;yRgXgu`{`uK(SVuoo6#7~#x3=#J|1%dD z7ug?GrqY{<By}WfjW03zEW*~~Gf$%EK6~`(N>Cn)wg2yz_r~T{ro~_Ud+#*2XPRS` zek?a}4Mnics1-H~&i509G6dOrW(97DSmH}05J|?%P9nlfuau_-OtrjmsRz{X$Kgle z6x>L~J>1hqt<uTCNf7_SG2Qd`uUYl^0GmIJ@dI7qG>2yaKkfz|e*{gk@L_Gq@uu6o z2mjclef8yc-`}aqsa4{NY-cD#I>QY+8^U^vg_m~@zoN`9*Tc?$_t4JHAjZ-Yn4{SV z9Q-IS7AQGtA@Pvq@HI>nlaR$AFg^>f_w3BMtPeJXN>Z^f?JJ(J3k#$oU0(@)BhOxA zGCz!YKi1Mhd27=gA~F+W7(Ea>u^PJ<ni;z@jOLY2kJUAtPjhb#_TS3$>Ni*S#>Hei z<a4QZ$(PYr%`N<&8i$?rL)$u|9p{4zpMpbw*t!LsL^!<AXM6gy>bgX?h!ehrfT2vj zE6F$1HvTnU0Qz#^tUtrgI=a%>wfVq<c`r}SK13}8L~@0v<3!<A{#wIYCC+BSqlN&Q z@;%jRBN(p<%a*3GbGG0Lb5E>dX38?Q$(6hv3T9ZRHWDasI8I}o<if++y=1X)F!~`* zcWew@<z}ouX*xk<m@ftN0dD8#QUkptifdDSa=<@_fjy(pO>|?HcC!QV#OOf0D8Wyc zD`bZWK)D+4Q0>X!(q<r`+MdM=47X~7zh9l@)!JEU{^GRquNcJH_7{g9zot+|FPwN_ z<u;r7%~sAE7RQut<>coUiImTA*gf4>$JAMVV-_p_>m;A+I{Xko>$6urv2pu&9=%>} zz_;pl9f4Cr<*Hoy;sWc-i?yt*NaMyL70-E1f_k+ER$3lxinr^2c6$r@fpOSo-u3yM z?=~Y-=ZI*@{{SVt;`~`6Avn7}-E&q92R7PQCQYLoaH27Av8%%V<HN&1?q9h(0<J#9 zJMNxH*ixB{dtwCyuQT8F!2=hB6+GOY0msdU1W&Q9jYzNY^-n9uuIr9FGDbGuiE%SB z<=D5{seTqJWUB*GWx>w%_G@bw{w)B|ScLCi@h2<4ah-?bW%GfjN4F{8g#C~=aBDk_ z3Hl9p?GK+~7vb&zId7{)HC@To|B~qx9;wva&>U3fu%=vak6-r2w{Y!k-Ng?m)sBE8 zoGDT5C?@|>RFm|PY|{K;%gjhS#ygX9tCu&OX=+})&KUl4k~t4jI=G~doYd0$gjVes z!zjCw$C&v5Hix{y2NB(DjJdwrZxREloB?vNcj|?owc|fHdQp>;jN7Oz+Rw4+Nay!x zPamKC*pTk*qz;E~<ZwyWgEAvx1Fg*TwLuJg@w`{rLSYS|<E`JNF6w4%_P`3lE~0Dt z`rgKX>Fw`~)4KnNVWZC`CzSoKzx}tzX?f`-d7+zYxtRPtFdO9qcj4v<yj71sE8u!{ zmkecv2c_tw%RhT}!g=01u$cT=Vr#4hBh${+_5zYq^Y+BL?|$vUK^70`wUAn6eM3|k z3i1m9n$G^Lu;uxcYWr)aue%R~9UfQF4bpg6Au*l(h3rp=d6x7uW4WXHE(1pWIuh2s zS*eMPM`HomZs+%^U}!{s4^zu)iAvMdK<MsXD9vseu7ej-ge;8ZP;rG)8bZ?1ilS&Y zZR0!SN$Cg-Tjx4#`{Pk~$4GBEXvtW!pgVTDhxsdtj7w*@jf~_yClOTldF4|ib1KO= zKY}MwjL<OZ*>Dj>K+KOpaLww^<Dw;<>ch69ZcCy+Uj^bvJa_+**Uc-f2ZR1}u%Qp2 z*rP(dl=#m4mvM6!v$s}oq3CuGxEg+(_s4PvCqO}}<0->Eo{N=b4<PE20&_eEwWq6N zEKTcqp}7uzq9WV7RW)>%u$*hQ=db&*A^R&Jzg$tnX9@CAy|b>d!xRbvv31FsB&qT1 zmtJ3;YP)i?Q#&<+TyH!%D-@PEG`o>`PZdFPjI4$^s32UEym`4R8LTsjJ7>zq!f%fp z6X#G&P81&@R*4R6j8+#s*T)S4wQv-<z$61^>r0TMMl_DOwnOPmaPqy0dm4P=V?_GC z8!QwLK=_nM_}kfTe55AkPt9-{Ag6m|dW(X_ZB|5nld-cx&d+_nX<u0l=X&4uOvy|s zEuob1H*Y@md%`W+wnvW_&(iMiz$B~i?&@mdCFlnya}&!xxLa;*r6&2G@;h7>3X4yc zlK*ldY2dr29&Tj0rF0onVErC_G{i;py&^7;7wUyyZohWR4rK`pdQEmS+psSH?bTdA z*kL;`4@$WUe@ub(`7@c}IP8aC%;KkvJO$mZT~NT+S;x4L*v&X&U{(;3-<f}`T=Q47 z<=UBud21tvOkuuik{(ZQhj?eA`jPxhl4?xuUA6~LFHpuumYr}!PBy;hwXfGzF~#v< z38gPp1!(&SiBTkTo^h1y1_p;5i%hx2IQV7V_+vu;&I}gh$om%!;~yU<f))k^rT+X! zR%GM$Tz0|Fn&x{$L=))nSUL3=e~uDHE|zptho{bA$$nKRk@P$uKwW;N?#p}-WvZM( z^WE%Dr`8M2WvJGj5H6u`u|VtxVj<x1XWX}(f;#rE#faso-meGDQSbdmS!pb17iTFW za?Q0Cp80yr?d^_`oPAp4>KH~II=_pEGvD9VVz~=@3a0rNdW+ov0+4-hV$$xmLVwr2 z1(0?0c%!t#FUb0(KGjAg9iS&R;8^^bVobJSXp^t>_F9eA!TOT#=<5|rzRkRdatDP1 zjYD^aA{-kaeFq3MjeDP|YM)}(dZw$IE8I;0cpwt;5ln84a~WrsVh_Hv|73m0`WzE& z`J3wYk7!(GvR7I2mo;%xnH1fuVAgSQrnXpPK#Cu~c8#Me+@4&EuOMv7^pb|B#uYq? z!glJfifyKU<Z2{Od~3O9mQbxvSvBJlz6GzJ{jx3odI7LvtBT01e0SNL;8{#Lfb%Sv zk4m&ZE|)t|E$<ax^)mrM^|Q-g1b;a43Y%3^^4-*e-}Q5a=^hLw9Q1W$S4nsMG<PK} zQHnO2Rqf^~DE%w8M3>9qy*kjzP!P`WE+jPGzpOFFS`hjY*gN<X6(<#a@!E?ZA1_wo zWPtREjRf}|-C(HhFc{f+SHqe8bxZ_xBWt;-7k&NEgB}Ah_6cA9kPX(*Fp;*V_%BCd z{`GH1^1hM9WHQ;jH@}`AJ5i}OBhcsb&eGzFaa2uBjb;XL(sIIu{8PTL-soc5+$n*l zB&tH=#%rI#mB%?sUm6D*`)5ME$!wwCi?MwgYh!{sFAC=Bk+(-Vme0h%?ygTB?Ko#w zGe5@TCP+hosIDjT;qRG)eUQ;5N6#-56Z$Hy$;-1+)6%B_*@1gEo2s)^!@&*rVT{9z zSrka)t&VmK))K1c5u_AK1;JeybS+^<3Irqc`!l?0z)^?&+tGa>i0+ZBb=J&v$amF{ z>}c^ppEFm+e6scsfszb7YqG2bM~HuPL;c>@{IJRW6uY?)y|lfg+<(y7ufCDrXSR6L zcmZ2dFDI04&LHi3s<ti?S%DbBtdRbx8*K<_f%5h#&xD^SdpWzU2B`Nv6?5r;oVT|~ zigp|X(Y`{x#S<%YKofEv{#q+`45lP-(JL-v3KsPW;OE5p0f8p#2XUI7qky6@dWJL6 zd!Ktm;7i!S<qi7_8D`6j$?$W;=_E7H_@p-c7zKC8pR?aW+~v-s7X#4uDOu`nfHyfi zL(l@JMSVwoP2LUc?ab*>F7^t_4%$8`=|ybZ-6W6OAw~H=A{5q#p98;w_V9|`sgfQH z#PHOzlh14N0))lda}@&wx;<-Z)cN}B`o5d5KYSVD%eoD6y!S63G8XrDqVwQ74evks zni9sKNv~Ozg{pC4{hWOcdsSGSztVfcEs73M6wntj&>kN=+tZwv|0eh8N>_*EbXdK* zjXz2XUSqdjE8)P}f<i{vza6y2CHa2PgGP>0b+z<0ZdVbMa6Yf6;nbu90iFeGu4O6@ zGqv~RJ8rXVxY`{(-c6y!M_kZ!<kn)i*}lb_2rTrv#@2U;N^A28J70Tbex#Zh^Hz6Q zn<GJrk1Ok~9Zm&OtPAu@+Pz%ooXGH^!5Fx0jKdy>Aa|TyvgU!#0VX0QJc+``U6Dk# zlNdGGjaJtB%!|NzOYT-W7(7^19j>j~V2IWEHMP#>TD|>8J>pcSX3hSpmqe}*DB)M} zXxeDyjg_FXG60@u=7HV7gZk@|jYzLxf=OsW9Wy}NG27!f;^Q<wf9uG^T(4d5LXilr zBT-rL8I^6r7!!Mv*bxs2Zfbma<M<Q6$W}V9jfe;BvRA(5$jCI^^?Us;e3k{}AFRWg zIK%3YUOkHY7hP3js$+Yqz6AIPQx69@;W|8==RL$i!e7VWPal05p1<9xF7$dFW*{BJ zU38n!D5T-sT6teRvUIQhMZmsbEk}mx@sp`y9fXxIl%g+A_^hewFCs-!tg~lHXZhKN z?Ld$-<5Kip&D9o3-C5rSUGld03s81Yk7(YF`{P6e<cd-!W<T3a3pV>h()Oc}-hY=1 z1ph9v?x9K8%2=i5olA!|Fczx{{Ks3DZgP}wmK{B2dr|2YcLRC2Gw(TQ^*NdJ+^-D& zK)zSWd;J;f2JB>;NS;r2_WT&{a0XAnq}8VM$o?AT58M}hJV}5w+w7o|y^i<rS{vdQ z?h<?sRKgQ5KOLP829O_nhwWv#p55O(8_#1V1|2vg13N08slB~pD0YmQjEZOke+JoS ze5F!@5imUYny*v4=svx}H8`3N4+7_pyV6EER`&q>>Wj<_+qD<@SDQ^xC!>VF^GF}b z>MAMEHSZ(G78~?9%usIbX$%4>Wvl`U4o=-(dzf5ZfNmrs;|aXdwH+iOka$d3m`!LC zTEXwYx8H8{4~zPs%lKmres6CnSEF*KGvo!al8(QHwSjVw*bik$IiE6!e9-gt#0ibd z6RnZ#8W(d;Wb8lwV&CJYn+L^@CmxyS*^mS6MYFlFFFgpFuNLY3@$T|`6@as?a?1kN zc?RQ7{eFW|^VVB6+u^G4X!%bwrR^gDI$YAxe5|)hO-kdsN#lazp7nu<n3>!I<{6*M zrgnDNA3rX!d1PgLs5awV<M?@%pMLMoUUj(jZt6}wb8F<SRz!GwY?9<Dy!+(04~MyZ z`;n7(A08S+BU`EJhfu;5yaq-r)|pzndsqu<gl9b-s{*HtV8hO<H05y{y=fr<LJETI zUx<u!aP!db-;+aN$<%oTt;jDDg1K7&!q)EThETkfiwHj|q+auM6mP<9kaYUwESO)L zPkVlbTB__=^ZpA)jFA_Q>zSp7I%_+gWHl{@;zW<39L_$Z_9=1Hy~aBd{a?}Z2H%YK zU^)!Q0GsfNJkjY7tyFs0?0DJSP1-J`PjowI>3?GQ{ni=j{9NNt$wVh(b62J%_g1pc z(Y2mG)e3o2##Wfl1_p)iOL@kk-A$_!<LrWXuaTt+In&}>kx?#;p0*!M1_d3fM2Oh` zc)o=5yxq-eod)=z*EfZW3WFzIrS%jhO;`_$3#zCu^GqItpgw!s-7WD$3amT57+fY* zI+4iow(Qj+FTB6rbt)(4jv!pe`VnZWz~^<OgnW{b01lp+uTUWIh8pAW?3VF;#z_|? zYq|Q9&kRjGkrgq0M&!#0qKjAP=*@;&>hQPcZp{ws35E?7BvO?ccjk9V*u{-7d(UZP z-LBWU(Q&}~A#z4P;M&}5qZeB7#5CQ0lSaljHTmu1+s7q!Pi5)({ikxjCG$Uh;W=_3 z=x@zY@Ih~8gzXxM$d#@6-)LHTXsNw>_11@(h0)_|Z3!Y+zS5#P?JPSTb-=iRr7>{` zkfJKp{(~&n@vWV)xTtm#5E|zbHcbi={_20}TC!j+dJ&?(7~;s<g4X?9(bj)c0pVkb zD)$+oG70KX!dnf_j_~`s<$F*pq*nO$Rx7pO6~qrkwCe6vfN4_C)HF0%KS#t}5WqpI z8#W9`mS_$eS%h4KCZQxqdgy#|BPKe8%?5}J-}1FXz5gO<rF4H^)z#Pd^!{c#sipe_ zLLrx+w6iGu3X_FE(v?+AnS7%ZfBE{P`62~&>+8r^?Hixkg7+j3Ao@O3VumlD1qtB~ z{iP{?7*cfd{+8yj-{M-cU7Ps2e|rqubOsft#j%pPd}?4URzl#`rG?S$13xgB2Ma%< z#F3Wj=}|AsbY-rG*hE*gOm`&t25wFbyKS`s*=&AnE)2xVaOYVtH|GPhd5qtE5x;BL ztNVsNxw)J1<y>1}Z4sVwz)tI+^sCBg*Un8SeU3^Id`5}}?d58ZCw_YL08XA=+&;kT z<`KjY&HvSu6yOz-!(rgQeD{g{{TFaYz8rI(Hz@Dh76HJ|VWC@N{*JWfbT-z=3c#4? z>Y9`1a$oS<T`ST$<ia~M|9OxTI%9nNTuainOT8w<_j-H99k5eo>5aP<6}L|PKPB0d z^#5B+PP6<APo4uH%uH`r@QVoBQP<Lb$DS*XQ-@42KYT%;tmc$xb%mKGH+>}>0Whly zKgw2XT2iD$yA-lIbpSyBHQjdT%PqdHLth>_11kdUJYZZpTwK6JNh6P|kwMn7Q*C3= zOQfUarfV)4>e8X*%AZpEnE9^7wb)wO)l0{~j=OLSL<gnRl4+*s$ac|oWMW|KSeb8{ z%W}_>%lGQw3QpZ>>Kl?Wi2uYfn2{;=V!Y;(&Uk*s&xK3oW&&Uj&KHHjM*Nfr(+?gQ zu#)>NZpJv*o3CKXKdb|m>BAqdE7^t#yWYemMKZ_RK8=ud7CrBDe6FW$Q+s<wBEFx6 zY9&ptaAa(#t%ZALzD`MZE+rd{LG|a&7>pY9T*_h(T<!6?@6?XrU}v-IZ|(V0csxh; z)^h)+T6{X4o?S`dJ1yMl0}%&j6mGCfJz7_@{pQy7hceM+Y1$vmK5yPPg3%PYEY)Kk z3JS6Kl{tiro#E~MqmkMfUZ>fKP(9u4ZQhH9G0omC8)b-B{YB);x5fPpyyNU?*s%Z? zW`-Zi*_{k+U3N8GhU1;E5t$FkYod1FF9&_5&~{v+E}TKBat7smIW*_*onY~DS5e6L z6=7FT-{9fFK?RVZ=>vVn=f+PjE6!CqE=@45;+73}sL$(^g0$8<T0gZ>vg3wQ7Re34 zE3MRFop{R=Xn036Prj*^^w;jP{7ZdaMthv-M&R_K*|z3A9QWau)bg^zy<MsQXjbRG zf(etq0@n=urg^yOGp&yIQ52XyNt`^nQd8rflb2^bL6wLeEEKCWMsIrG@%t$9g4UBV zQ&qSsd>u?Z!YiryF1_%8yv+&p+Y`C(L-nDfmE-!=-U82zft4|fx<*5R&jV~Q$?pLs z>*LSY-q4uiEa&4$YNcAfVZfdYSs=Z;G#{R`!9`dmLe5J!ItE`9P9;VA7!6buPTFTh z<a&aaWTfP6G_Ufb(-N7qpPybTp5s_h=UEPG|Fpeu<Y#Xb9iK!;T!cwHQA)JV90BH5 zL<p#qe2bNWsH2MDM)@zBK0`m+map5=T0RL9n5!Ub(oie4LA<4ZEc1d?l@9Z{6wYTJ zN44<)J3L-RPilz*K^o|H-faJNMtnM!{%h4@tV6_q3h=`0*C<xWAWsv#c7}ad;)@9V zGZr2~8bVC%Or2!=y1B{S`c?pFe9+#$EZVN987o_<2vl5pquLUD9<Vi`$!Y|Pz_|DI zm#951ZPe=SNtt{$fA0LW!H4gafRMV)h6Cgow^Vm@c(WdJQ^guFE6PODZM&9~E<*{} zX7f+fV0U8omC1$+o+j_9j99gw0(t&ph_0^{N<Vu#OfKemf<tYe%fd9dt}IqTv&JzQ z&VCSqX<gBAaEfN!`vg~aluEdfh@hx+^v`c8r`=~D2E!)?u>}hH7vB+DK^mNa^qmv7 z%v=Em$<+gf)*^)D$C+kTx^2z+JCK9RTbsWrls!#IU2HPmRJnRZW#-JS!^{8GtAc+= z{THkWU8_6*<OJWhX7(-qWv_uy8^LQD&0o3}+`}nuU)oOFdaNk)KZP96_)HR<d^Zzr ze-pH|F;KGAJ5Z7=rE9B^W4Jg&)peQe08Eax5*sR@GmDlk;BQz~>jiA&kvY|MP^IHn z1XqFnEv*1_kh8I0W0`Q*Bow==e_mo*?+CP(IwCHj#2uuZC>*~<%UA^9b^-31`kjZ! z?DB0?&6rll7f9;S=a<)H1i%zGhB}-`^Y<|f%P({^8dI<d$8cSts)cBPF4hz17i%}E z?qq-eCY2J~j+tSTI~ELr$|^AvdF>dnm3qt0#py+JCPQ|s3(;|{5COgkl+yY7+v)tN zJZcy3{EY(E#-8r&&cih7w*_N%ViNAAqYfc-*PwAM!07nqq7RT%zMb|s{}Za|NUEsQ zu}CVCSC32MddQBbQ$vL0OYK+RU6zIYP)0(+Dfi_oZ{na&xbZ>n20T{`CM<p4y>HsQ zRy(s4dM6R$fDmBiz;9YCRJdCKFhYrY=6u1Bl~O}yg2G{64RR-AiGJ^DGpz`YGuK}O z6ZgV2i}iRJ_c0LUnu_o-Y5ireIan*MuU@j^HMD8Dr5!)EsJA`)ZQI-hMV&YH*QCk{ zq&yRyUX*(?=$&tL#V7vP^hTihdU+V7qxDCTWThVY`)sk=BLQ%D#h2Ec@&ojr_3(Bp z97Jd5Xy3iRrSaQM3;qoR8dbw+V4|j3N`z1fCccwrbQ$GYU7v}MOh~}g$<lCzbxE@W zLka>$cT7r${JW|j+5xs_1g|$YoGY5&pW!ogdguHz2d<B;RE5?>`FrX^$L>-=<!U1) zh17U*hkiM&@=Nkao?XC07y*0rv^6##UN!U7Y1#Tjo&c2TvLBk5bZT-mlOG&8p3red z*oe5y0!VY0>@|J$y(<~RGH_S@K*_nE!AmZ8<k#zIg0%J1E}=khM2@%JyWN_1_wOoE zMG-@r#PAl`9`cu`dDu?!Fmlx24vs!qA`1UhlYxtMby3du{0UjckD&+h0)8%WmbvZA z`r!l7Jmvy^rR&0YdKX5(KrDW74@vxk6#r*yGhZ(LtyrDsF;SenGmDF(1|`_NGs#+a z6Uq+QhoZ2!ou;Boi&DNXrB2u1ZtLwmdULpEQTI8647+6Rs#Jg5aQXHvmEK6&ID?J2 zOYo5xq^NFRijyjq_*lE55WSoQlA)&!hCS&PT6De_`-%ex{ggWCS-Rs^0%xdJ81o=0 zg9al2&9I!qfSlMSA*91Nb`i9VXxnw?gb$v?GtlIu!-wRdgg01SuH;-PP|tldRD$1t zzC4v|uGBBrjbbGa_LUBI9&~J_?ckR!;>qyAWsH%bSCX;|(kS8Xi@|kmp=Jf>&2@Dc z#N%W!B`tEk^!t6k%KV#mldxrovN=Xc1pBQO=9i64^PJ4mb{b_}hr2LD{$&q|MCxff zdgi}wN#^Z8;VylCZS7LPD&2J7&QUgUOs$uAhQUA(|2@w5%ctv!EnQs(RKl=&MO17A zSo_+L0)*)~qwmM%m8BW7#+8Z5-yfP;^X^lo%i9^Cz?!)jqP3zxS{a>@#Y=b*Dg@mn z3z8Bn&DqhpQLb^D3LYs97JFGUPtOm$sWS2n(Px4bo>G|T^WG(tv`wMFhE|Z^D7OOG z)CE<h<GOb{6@L=NbqF|ld(fsHl03v<$jO4cn}A|tKTab|Uq|FV0pP;rj2TzfHsi_A zHoJ_Gyu?G=eSuVfME<x^CeF@O@$DiOAL#4?ribMW=g}+MM28ZBsfm?CQGSmMH}`vg zWC4?(a8$+P0LR>mM9I62nc+DqngqRLTN^V0EdHCPztQHO;`{vKpB&Cg;$D5Y;PZ%N zp&~{2Lo1`0sIYm#_@BYvmYf6AvRsPGgccwYmHtaTE&!SNF!l<0k}1HSEY8FKM@$Uc zn!Nq&$n#m-#-;Mo2XXo)^%XI5EN2d5`F$Kk)rmH^geVGz3Jx%vqL4c95X=*n{FKv^ z9ZKvm&X7y-4S7axF5ujLM<eod$i>VthqxuQl(<FB!zH6!8IZCZ!YKIyD%PR%8w1dV zpP@?0JAnDJIY%`mMc^VW9SO0+_{ZMgJ>Q{C4m!ypxV!z6n}~tBhN#>Gg5m}f#hjAU z!gx%gPl^!pC*MkMHI5%lF501A#raS?BT}k}7zHqVT^yo?-|dpqF<%S)xpif6JO8?6 z-<71=h~j69mtTjzCIfT+t8zZ4|4C~a`@`lni2QN8xp6yy_i}6}7RatCPx%Pw3taEb zU&)CAL=IhRuDc;0RUw^jAtzb+^^LEcz{Sy%tZ_b#>)~snSFh%h?Wqnl50_%<{o<}K z@aqk2_0XcBHTue;uflc7Hw_iA)~2GtWvBUNF+0S^VxVsMZc*uE)A!-|D7<4yEshlY zRaaB>)X(F~;SW2C_xCG<>G?f07x0A+7e%OMx^f&@c*dJ?CxG+C&5&}e(u*wHEAUG4 zEiPx-RwW}(Op$Y#$qQmZT3B8y_5P7qqo+={H6MG(6C>u5XbBZd7qylV<bg5L>O0%B zKTo9Fzvz5wRVEz85kz>)<wPrK8h+W{;0JX*Q_W}vy^oN&LBCCB&@W5b?=3y{S-t)4 zFKGT(l$83H+^QRyRNQ25W!NO<{g$0nPe7`GP40wa_vd}j(2CBV9w9ZpqA_7-io9b3 zd2rIvqnA=np4yk<mGF9Ry~pS}gf8SfDZW<v?Tb`x_L5DelMgZ7b`h~gw*8e<ZF<q) zUE+gE{mGPtUCG+^#S_Y1@RJdqEwCbLXg+Z~-yAsQe^dTCHhzeIAR(k!m~n*L&(`%r z*)JFICJRDR#+i(cYjGqQ1Fu+W=_q;wpm9)NU~_4Zj1qD6sHwyt1EC|!EdHJ@on09i zI{mSh{&H!eVgkw0i&xuEhCW7&Y>3!=e!}QOW%G2$V<)uotpJA$;f%%TExq-RPFxS& zwyG!Q>Lo}RBcu1G{^v3hQp>!Dt{Hk(66fV)+0My)D8pF%MDOkLK4R$p#-@K}&w)9O zO9%fJsY3W#YW`AQ^VXJ~%$li;A4Rom*leMZS;F+pwfAOpV{}I*cc#QKO8N7JV{rWG zTvQsqN64jG^UOm)_zs5;e$Pc&_vJKxwIEX&(oh9K1lmEH{1Wf<t{U4$-p@Ok^wlzc z6B@7_TEJpc^7I)Z8vY!=ecrcew~<)==H3}3L%n-_&~W5rd{>36UE}1y&v`K?!&#dj zv2z>L19~$XYf^7eAJuDb>-oP7Ry#wkM{Z<YiBykHj`6U&axY<WU6ZYS{xl?m!(*n+ z9B=><BJtW*tU1cxzoIFr5JJ_Au;0!VdZifRwL|I$mH9lL4#JmRfe~mOi3&fUJ`XJv z@!}jWqCq$W=Dr$4;`zqlzORR#$w^PliTLce+}rz)<oK$OoT(H1%L9g-4xtf(G-7t( zabczw7H^=S^Mdg7ML^ixz~{*OyBEqe)YRIx+u9VeCf&MGoxKKQ;`i&iVEV2+VH-bV zgTpsv4rQC&_YywS;ZAUD8rN9@!cpqo0JSFsvif~ZXnjMB{kS1N=UrI@QUv9NF^6p8 zM`BGs<t?{tXnI{RKUHK&F-W+&Frsojb6JlzddcP8i=zhYzRAgjQ<{EY;SolQ&d{C| z`=R@V2;ScGx#urW8%*ui*}g|yqR8agWufB93t6Q}Hi~h`F-^Vm-c5N{zLXD9AQ{Hl zKnNmwHTBF(%=yu#lk251C)HIRp*Mi0=RU2vfCsJdss!=jD~~rL^nkz>ry#oTe{*U5 z1OEbPeqq#_k~Jn}Z^Aofmsuc~H!o0_dJ}61l5B(z3|xM)^b`U?-`H8-eBoH^*_DuB zw1E2r2|+5v;(5NZFv<Adgmlwpug}A;s%648XY~6|p<lf-8oB#9&%}$i9$HR^2n5R` z5dGb}j^OFg@bp4zDaYz*YjzM5UH!_|qmtrwAB`9ogNPZc3kTh4O&)Gq^g4H62UV0p zVRsR^y=n5ZZ9|r$TqCZK;j?$;^^W;bZ>_KIH6N`9M~?LmKx`S+esdTjtX_07y&89* z^=-SHcZVHu+RjvYC4bv>k#eU9o@qcX+MrZ!!VT78=RTS|;q1>bON%F`di$^-Ga{b+ zIvND7>~n#|aKKc!TEtEAJ&756sVntB-`M}uwD_vI{z;V_<xgG@=KI4Yamwv`!Vk46 z6OTO3J0OJS)-uWghh9E@EE0E*e|oc9eSfulP><r#Z!X{acVKM<;-i}!k`Wuy70q;w zYigs%)+&o^u=B2@_33$^?e|f>wzOLcH;jN+5&E7=9zObHc;`;_47K5?=M2?ShT4c< zW>{+}xYz<Ei(E_gXEEPG{Im%m354+xRfCZkY8QpJ*FEJ+R4Laeo8t(Mdo<ZFG<Oe` zQ7dsn;jUQE4B7JK?$f3>M}TgpjFz9taA+eRhZT=GV4%Yxc_&IBevFCOq{?!a@C%~( zE{U5FhwBOFZmP}O&KFzjn_q48XmrYuUJmVYL1hy4)=JGbyc4Dm7?sgiteWW-Y&W|8 zU#=t-mZ$c+d~EfCwY5|-xz^?by0_}jM%1uG0~Ulo#W?S2<r?Sh|Dm)zIr9+NP+=aR zkYAxkN5IX#b%ElzDk>CLStBs95b9$W9`Cl=5gxo7f7|mcLV4y`tmmwC=>pu#HlcE} z$yGTM-%PQ!7`kxCw5YG7M7vgY(f%<0djO+-OMS_m!#4c^(NQ+;wqQDAgY2LmXuU{# zF6SgWs^-nfP<$f<G*~V(2%wqvf66~mHHXL5VQGUZ^FUFx2a9x4!|I2^v?D~Cdt0h@ z7-~*9{enRb(aHzgrt`t42uXo{bh?p}`O2b;thy(Adkuqx$Rd(>e>oKwfysNNKJRR( zNeh>imTBaSjp+T5fW2Kv#ijpOB>Ya_lgs<<??>aDcGoiLo0SopNzW&o*mCysg&YEv zWiBs5m>O|hAe4klP>rFY>1?}UjuS@e3eN`(HDPyr^V+P^{<k7Vyau^__J(ADHpHkN zU14<V&0@y=5K`6=>BhlUsyuAmM=52D=?Te;r8(wN=TC~}?=7?f&ksbqYMdDf3Gf~P z2VLH76e&DiSV&5%NW8bWd6PeiElK*GMu`{Aom}6mezF|y3S=R>>So~TT~cEqt?cKa z2>?{nd%uBVbFWNMslQ!G9oDs47D|vql%LZP4X+t~W$MWDaZJhbtOzSk6X)C<GUL*E zTEeEqaB8p7hMpo<1jyd`%slF`Ay+)IO|jba{Z`VzK*H_j-ObAS?pMD>^FM7;lVS}Z z{I5aOTkhRu)1Hr{Zr4c~5SRI?qT(dDeijO{A8oHqo=Fsca`4`Mb-o<6W4<yU%pU*X z_?i;&{M4z9_c%Vjwzu)J0<F=qAfbh2un#fGAA>IM)*eC)+fmBkR9nUp+O#U)X<#V{ z4jMw0d5}}jG>5AG<2H9{rSkXEv5tqdcMm3Ku9&S5KRbR~mvQ70%OTdm%urUw4wVPS zVV`gF^e`w|Uj|Att1gjXg^R07+#9#?(|{FsvTe&|5xjg55V-VqeS$&rLSeiG5I!}# z%dkU(tfB{<S>Nh$BNapP->FkD_Cy|T<Tx%tymhCvIeG%%16h45pq@HMZhLG;dvo-F z83_~wLk}gLS;fxV>v=i(dz;OK&nJ0$`+I`jp$+aI7C*)<G1WV$jNqS*Bh3S^Lk#re zsJl<@<n9$kzBAvG49wlZvUY~Lv>N}5fb;4>HqU-bKV&xDY9_OJWz^qb%Zz{9=Di4h zrc7oFuu?i`S%&vA@g)sI)9;g$8=4q!gVn9-V7!24*JNE|*vlXaLCN`R?D3%UvBMB? z4JbN%-0(Yq14_y_`~X0Vj5iRA@0Z#gi67ro@zB^@Ev>J(D)EbC`7&szID}UnF^dNL zg!G6OrtzWP#!%DrKxpcS-Ua4(qH;;7oNU~Ckv#CK+R!CL{$mZ!9)|fsSk9AX6EEbt z%lw(1Ne2<56QL$vB3&-vbJ$vLsFUxLA#c{EX1`o5)}2f~dcL8cwGvma9;^1<|MU9c znGhZsw`I<H0#WcI!+@JA@}b$XFW9_GGadZVshm!52tWRQ?~b^Sx;r!_ZF_gtjkc2D zv@`W);lC!`dDx@^#r8WDlk{Rul$~eo4t<T-!|+BN{o=Dv{us=m@%v$MlQWJlGsoE` zW;Tw@D^D#9l$?*=EazURKS*MP@Mnqhd^Kh9wE^fUBCydVEv@$%7TyfUVnUEDO5{@@ zn)kV9IK;Z1aB0)%a7TqU1AAMkUMVG<yq<AZi;Mgv7}zFW?!;>_39p5kyOZCf6V02h zx9WG)Y-ZMiysvucnAB(Fq~#_jHz;&X%J(d4d!`l;(+sCT+a@&&bD*4^9VKG{nwYeg z2B0_m!?6uLv3CTj^Xzu-8L4(#KVnnhdj}Mvltq$dQ;5E&lZ5r=bphMGz=ASfB?0q( zb&NDFd-kgqcoyV-AR<edRFYm<G!-9<P++RpwhHxRog<29-+F^8hMPi@ET5xhel$Tq zp!N;WZ>jxH6=&F1_EvwF0{jS_j{)n8xj3bq2(d$2ax!8ME-3sc+AuN5?U12yUk~5l z!{i5@2Z%VFqy0E0#l8M>uw`#X>xwdHYf!1_rA81SV0Ja{O%U$>x^$KMpsv&IxcWm| z$oW8fNo0Ig>_fwcM2ji}<u&e8>X-QedIx)OxuS88$(*MAym#stW6X6ihUzH9n^o0x zGyF%O*YhKrLMiA3dAV#68^;(=Ei81^?s>QgY4D2Q0~>OM%6iz_l8OX$pW++Iz-c2a zl<fLR>}|eX^NXD=YZw9eqPrtD@VJhsH@kJ#qe{}bE6cr(p;zIowy~Z&IaHb&XmLAt zm}kcLxIke9&x5U@NK3KHVpiY5^38IX<SCz~)%L5qJg6o6|JN6|@K1@-FSm2vDT1u4 zJ)^X5CyY|Oum6o$Bw}JQH6-cvVc)C3@%FaV+X<(GQXW+F^py8>8Mj6q?tJ(vZelkI zT<1Tp3pSiadg6_K#1<;t1y6>3^4_Z*UJmrJhXuMzAQTznLS_qNh+JO}a3u#W<8Ebq zL+?Eg+Fdps{!wsOow$<)n6Fil$3^2=-3>g#;faJchr=CofCN3je`9JDAb?|xCE&-o zhm}>a)SE`4N#MMX&bs_B@fBjPUsmP!KXuT!sDgz0+jb1`Vq_RAj-K{`ca}uGTPl?0 z#m?>sANQ7&e^<C0-zx(oSYAS*__D_wHIdk)E1fLNs>(qdew0^`<6(SQ>X5$a%@w8B zM!&V_PyOmVIkM;T<ae$h-DAMk#6EHLJJ>iCe)?)z@?*gebQ<W$=LZqt)0P$(RcgwF z;)m)mU<Y^o%*8m4>%l8*ZJGAzX9+-4DS^A5A7X`2Q0v^vlGAS_L)YWd?Y*6_DPzl( zL)~?|R<elRpjR;YE}lx)l)`yc<s%(_`O~Tj4zHrVCrTF)&eZwX6~Pj098KM>Cl3rU z(kO4~SC+a|@9T(|@hAM$T7(ts+Sf>8hJ!}lDCZkV(=d;1zXrEN)+0oJ2J$O=XsH!x zMmy)Z*vlc2!)Z=R;hOSMX?f?~q0`4s_F6M~WsR_bm#RZal~zQ+3yNO;7@)xtt?IPX zcXlIR-sRH$@P+I3uLYIcJ;){yr15LGWvZ5p)~jUN(-9^2|Jvey?tcoIx967$s9@Hu z*V)Xbl`#xQiq^iTAH}ndwS9gy=Vr#(^-J;98mYzhKKf%OPQrFnQTT`X-S!)9L3B{Z z)YKGv(n+mb*4O4#57lK{Pf8!l!%z2BnkFEUI7?f*I<=0ns$<cCkftkY_IhI(pR@|$ zI5k8P6tJ;A{Tjd|tvOz-WQ^T2nyrC%L{}Y3eo%qDkfK*Qen_uM#7ie*dK3PV+M@F6 zD&HM%(1>l2E{{`l;!@*a_MI0Yy~G-6eFK20TWb1y(xakZHpQx-k!DxRF&g$AMsn9X zWJ=8@yfNM_eh`R>(a*b`#(yqbZes37Mg6Gp`QdLqLOyLEW3S9L({IV`6^E8fcNEg^ z`uIJ8#%2T%4c{XDFE-{kostjy@+#2uKdEVQ?!WqVzrskYm2TESqFFobnaX{QFVj^k zMNHAP#R5)7C$0-2UJS6>clr61^d$>Y`Rv5SviPO^G=YYS77a=xE@`_zWUv;*w0FOk zw2bV#$FQ05K8=uMwdQC;^vxJn`+F?BoL4K>pS|i>GMWt_oT36nmwgLox2zaH<4ubn zoXh!@=wsyNbGn)osNdN|R&KY6u_~fU57~uEk0xv?pJ}bg)uB{+yJubN+l}GH{kR^k zaic78c2!h%Ehi0-^U;0T^R40M{A@cVS5H=*yOBo|D-^;|L){X2U71(nBLs6u8g1|* zK*P)GU;6?)nwp)~LQi1R{anD!oVsNIwj-WMCG@V_L8ltx&56CB_NTx%YpWEXYBdDQ z`QOeRXlkZ``?rHz`#L?4&*YGq33}dXb>Gn7W@`_~@s`~wlu0h}4VT>|9DvoCiWEJ? z>g*wY?OafIviN4DrX*9s)A6yZTk>WAxsf)G+8XHqyr>xv+?qsq-q9LhRef1@iu2;m zj&(c*Wza=w6XH-3@r)68BUmXqX|CQhblA}j`aW-uo+(#6_G(TuyYHmEA5|RI6Bx_q zw-}gGYvJXjWAy_U{bsPD;u41g3ucEo`l%p?+p=VR&&zg*GI|Aiu5!cY+(tM)2&g4@ ze7ZdCRz!o}>4hF+ZfZiv9UZ7ix_#0D3!`taBY|ga-n8-#dK#wU+QbKjJh1pTV{!>t z)jPJRCIm(WrYREZO!)Dt0P2PdK|twv=O;H;uI$@W^h;PE{};SPKKQ5f>w3!ITgQR5 z+oDr14?K(Jqi+Pd8CTbvdeic0-j&`F273r}&ANYd)vfQG=AZEr>056n!jIhK5D_t5 z`Sr79>Pezt=4Rt|Efw;^!ViP1E{UM<S(nxZ?n#_yY2D+igSCbDdhk<^%RjC~;$ODz z(%b#un$77aCA|A<w;z794#+>%X3Il~nY!z!l#FvVWbGIn%i&yYD$Fg3o>zovI(e2g zm1nY$KyJw!Mm6QfwttuonCrQyplbF-Lv5$-!8z#gCQ{YjdUV_@fjnIsfSY?Wwkh_J zZday~b|pw&@B&+df;X!%1pQ#V>gZMJStf`ht1R?hgsaYlAAevNjLi2=%ent8HEji5 z8Nnp&oHF{4af);OQ#MjlHIUh5f9|wW+H2JBge}%YzOgRpC(u$nycswzlc(#$-hTj% zqZHs&4GZT>3gGpgr+Rfs^BoFi5lgT1Cj`-Hiz<aS9jf=3$&L?mxgx&T1`uO2-&RJI zIz?5%6;sNY^}Fhvr3ATZt8)$DoLwNP?UB-S2IdKC_~PDBEr^XPyU%FZS+LC2KfqW2 z2~lXl?m3%#GCpc%29#Z<3Eu^=5`xOi?+)%o*B6J`80r?K^V!DZas7d?Ox!wYlN59g ziiT&{#xIw8$#zoQv&prf2l`&7@=y~`TKv*iug@bH!{fF{3mD?T`jaA1{zyf~eVfNj z^_P#Bvai~!RK}sk^3Xk|a*kb6eSKP*fR5opge#WGwdo@BUllv~FP~=Jnc2KU?;3cV z*~~jpF7x5c6F}WXhfonUY{^a2_zkm5Q?_2H?A}8^Fg_DgQ!Wc73HBlmQ?#tz{T>DC z<SW33$7P=1PC7Zcwx;&uhsg;)jT0DNZH2q0@w2hkoc`72Cz}&DuLfdB>!<x{jf3(8 zW_sSu`3BXaDZEjMM>Q&Deec<#)a1Ng?tESgN!Ig2k#9*sE}@FiI9v79OXH2j$NW%x zuOL3JrL;_XB<D^SjX34+j=ebi!xHFZbRI@X7{+m|W{d!8DRaYd<gwxYS`aSf!N~Oj z7t~u<g?fVHx>O#@w?<?j8Anz<8VSUAvV$Gh=XP#Q(GkW%&~@8DhOd<t@p^IE8@Ax- zjSVVuU|?W_b^aDQedj;Amb|${-Anr$c#sTC^Buz3zeutLCmzRP&%oH>Il|wD_RNNn zmC=0Xx}N6V96eJM{YOB^xqx%cV>q0Ds%m!vvfCg~tHovS2xw~?kb4cEogLGiI6%ES zG?6+;8zx0xZwRRAF0l548kyl-bN2LN8jdRO4a=Z%_byl@F%Yyy<KE$nEBEXK@$(5C zpQu7+{DU=ja}b?4HHpST#Hmg8;41=8xr(5E%R*2UWg;zj;GTkX<+h?{uanLzhX}7m z>C<FcB*U0*7Xopl*=QvxZ|VdBoG{17PV{;k4mA)P5Y7(+XW&JCs6_u{y2$><i$wgh zxuQ_blFA-<!F1(xMf^sSyZn4zE4|d|aUYi2Sl_GYKV1~-a;FrZ5qD^>FVKNjqy&kN zF#k^(E_we~j=$&bI&J`H^m&s5YaM)HA7tMv?yayZdrQiY?Yjfc*M}TB$30#b!kr|k zX`fc6p`V%1@K#D&HqAF>&DL_rBqLQ|Wf?_V?N3m$m|EHgjyCl)b#GLjO7_=GALg<5 zaRGa}#+qXCTJo@T`|#y9Q1&p8s2d18|GJT4mekU@RBED6v;}|f!m?{8OT!$#S@Yz{ z6c0KjM&pC{w5=Wny^kX+OP_hw-t9!Xf1J=g3G!AjKBWYGJ0Bhu`ErY2Mt8BkDc{q2 z%+vwdEYe;&G5rv{hnI^5cM%dzxe7Azo9e=+5t)I-o_F*>n!|F)Y?Z55n<2icb76IT z=eiuQMF3>d|8aHg@l5~iyQCtekjOD|N+Ag$l*pM7#cXn>*~FaZ&_S7VQqG5{NQ}hH z%tqyqoXLjS6f(@ral;&bzR&Y~zt7We|9n1s|FhTY+WT<b*L}b5Yu~2Jfj(5iOQMSz zH-g>*FI;Z&r~vrV@nf#MH{%z%pG%f5EK4@AasF@7;}q?wKb9}o2;cu~dq*_CbTDM! zj$56R<r_J-7Nlqol+`~kRB5__;wFN!&~!jXE#r5CsHT7A^XO1h#mb1dSGx8grDOP* zpaO};n5J*^ht~Gvu+(j}Lc)ST6^rl&qcY98=`LSKqUEKtsRB8fK!6sBnX+{AS%ALz zi-|oKANv_0(~WAGPv8Odw&g{p_A}~dleUNpSxYkw!#sUTQe+S*vJkR=Ou}U^4-q{V z9<Q2V$Run!XGGvLFwEMRTz&?5aqO8~12Gt|q}|3;;aGQCode{`yQK}XA!;SvWp6jq zj_GYGBP`R%M0=%>EGkEfGIaaheow^_auYP3K3O*!WoFf|tNC+>w0AqGbff*{--5?~ z<fi|Lr*7eys47VG7BdE~_*_5kr=KK5`PF@ZX&0#lpwek2+dRsoz97@7)>c*zA|f7l zc6ysv@;4km^NuSG$b3)Lc-Am8DbA6<k|-|}#-JRCoO&n3y3jfL*Y>=w4|T%E=mn>W zrI!Uwzw7uFVU<*E{RLWb8!NLo3-`VCBT58AD5HM}swf+YaK6aZ0idbG(;N27hiqt{ z>3qwKq?hp*9@IhtX```Q(P*RE1+Y^+v(&a8W(npetznTU%QKzpxydDY)RPf>*NI4L zFbjnSv72-ftQXK$^}(%cDE}M8_j)dmfp_e?J@b8?*goCyN8ij;A{9ZB<fp^6OuT6! zrE;Z8RPDRAT~U-WU(9{GR2TSU_^e7*W%pZjFS7Hc?a8-IF*GDYEby?vpIq+Re`_8d zZS<4Ijh`>ZnasAzm^{w6pqrKqJchjZn5mL!R_`!{Gh;u=I-FNHZb&o=0>-^_wiG#a zmN8Ve;L+5wF2>rE)XY`z_b9jzi$M8j{^>r)9{~pyhwGw^ehFKU8FmA-lgQ2XzzVaL z2?@5^7<;Ws-+~+M;Ad>wTerMG(78O63+8+xbJS5zpZaq?uR#2<Fb4gt<I>fhc)Hyl zLTqvWBewIxe&P?exLMIV(dOqIq+xh`!wzsNWS7Qe2cuPantiOZMNJHjZcihOV1Ugz z^yQ5vcZ{&i**arQy>76-<N7qF(plvbs|rA!88!Z(;bE~25pO%^K<$S3^<NH=)YC_2 zzm~;hQd#_q)}t1%kAIvJCq4-=6$Ss9iM;!#%J)SJNy}gQZb^oDUpn;=iST{;*;CpR zyY288UcNm|z0uqaKnorDtXKfDx5!lVAQG&Y#$2LfSe8UVC@2Z^#PTS5_6Nk5`P?nM zyo$z8g6tw2GQRiQ@qf|<6%-XTWsHI3<E$wwIn8uV=IxZYr@kxKtbD5OD|Zn26Q=O5 zvn#E?DVt9J4n9S%2`dDP@DL;Nk;$iEQ>&|YyX|S%AoKI@sjd3fxcbVdsg{s)f$Pw5 zc0y)lsfO0bN_*3%TOWdpbsk1XM#glu?q2tkM7h$G#Yw0uvM)7TLjYk~Pyx~!X6Mav z#JF{K-5frd?sE0x<Xzxo7t2big!pa_)`WSDQbvwJ+hz{i3>=r!`7^Ecjq*Qy_XZz+ zaT8p~|F+4DTXdgkipSTUcSo%Ee(iGMN1dU%S5yP8D@_3hgsclL_~}cV&w(0%R?0^D zO;=kBDkf(K<-@ktxk2lTkR;hz+2QV^lP)KGxIePLl%A@>r1B=?VrnzWTBc7qIOLlV zHN4&PM)k&Y_6pM3de1l_(#R$E+XYc)_qz%_PpCbnN)$xLZ;u*Q9{47W#S_|<<tCL< z+r1;YyyldBI5u*QajUP@)4-Oa*4)E>91Y4|Hu^7BQ?TZHb!y;VU$Q3X6I2(y$Lv2W z4ONe7_uP<jbUwVPRasfom;zPy)~xpVj6bB0Hu9({$W<r$H}@?C5Gk8_*)JBNy4Tq6 zjHy%X0CZtln~#B?^~TeE>qM$hnD^}qf38d>?|<WZ_+N4Tucb*i`pmNTiH-Ls&jkUN z=Zbvd1C@%ZWSKofV`lxJ7Yn(zUuI`dH&A;Ygm3uKvJkQP2Q6K|P&xCJmt!nzv*xdH zjL9Az$%R&uVBxcp$G!2b>=N0YUb0&Iy}5$>@kl!hG7%KW`VxdYSA;Tk&ASh!5o!Z1 zeT4Rza`u}nB);9sim<s7`%tDVlcc^DK@v99J=`q!eqRy@pUH1fD19PXVL|iv?O>(% zx@}_)T&^?zt<N}D?GMm5Oc2#H+A*m!oUdup27Ow0hm#q>oh9-(ja|*RJ5L|khM(2F z`fe{+_OC~jERJA;S<{PjSAyQf3axz|LkoqpCCVXmD~o04`;{!DSjU<a@CegC_5yx? zOkXL0Op)L5hkzkB(H&ni3P`z>AdTAoJkpN2!NaEQY0W0g<oEx_kVU=(3;kVrI<+gg zcTK=yEDsuOZy2rn?xg)2XL-$q!i-z*ALnip&2ixS%)kQccGOsXxM;5BhV_b4)Kn@6 zvQ^=M0X)8xeS^BW9d}$PsoeT#Z^Vbp&Qd}Tehw8DFg7mQ-dqYt4^(H$)zQ3faJ}l% zhTcHkyO+iDy5P+Pd-yB?oo)MlqPqINI!gCsM-=V5!sEz{NzWhFNdYurk9ckK)}k#@ zcM%WwG@CD&LYjImcjUH%AF<kL@aFk*<8_kminj3gJ^i$?-(U!7Y);FLqb`B&0A=;M zcfoXi0MVy~?rw0;XqwM7DS*4a(`{2`b5>C3$~T`DMTK5GCqB3IBeLwBGtb;`!)oj= zi}t*CU)LfTg{;Z1(;Ev6hCdmGvUAM*3Q5E1wp+)~Y_HS{{UJQXiaq|1@kPGndq{_U zJMjZ-9LriW4|M~z^Qzt}R(;aK*^hWmIMJW>`f-pz-d@({%8Bdwh;+mWPWi_NL=R}E zJ<mQMu&8$6#@pmG!jCQ8dGc$+k!jHkJbROj1#7)`!a5*<D3;z{-#BQ@R?M$JW+l#g z=tC-y8oXY$OL6|UQT<=t8YzK`)>pUVkE<;es;#7VRhZ$;q6x6WdM9CznX>In$Xr2r zVRrnD*S{v*ERo@j153&;@6HJ~NB32WJ$po9Q%aXNer&_%PWHS_jTa&;<YwG!93n^= z(d%#y<LLOW@~?sxikWItRIg3BxXKk2-+{vg3lIm5@no}upK~7a1H}Whq>Ng-Eb`_$ zq7dPXzCdY_r#~~vJQ1o8l@$MOb9x`-X_sn(DWOcf0qxp7)}s|y3Qy2z{9%K3rBP(V zuUSwJ2(^a*tf1XSD|zTmhxlO~aT^=#Q(qCbLZr~S_|qH5IFYJgx+?N*0mwFy!Mr^M zB82)w(9;C6D&a;;OhiP)&Yi!!;Aeklx<Cp4wEg`HoqZ3t1A@qZH$mPPMti_!LUz{M zW7e~L*2UCfu6=S!5}o@*JBfxzq%;;_z~*bLy!ZZN^`=5X)S#W2$i#@c`;?)gp6>xc zPom#+ea#impIlkt*=!;%3}VOETC#3EXPgP<K${-g1OnRaTYl@u&!J+(P33jvsRg;q zVsB^|m}g}f^|i8lD2{%u$I<yh+v(i*S8CalvW6ZfYhViWSWDq5r9ESgbpVOC>#_&m zdRqeu8@<+k|8%g}aVd)zJasUz{HIB1?~tor>}B-V6R`PA0aPmTa={}))@t5Y^;5bk z0YltEAx+1mDgwd8kaEEs(dwm{NMn{LA%~~`=l6X<<k5Ja2|^{&R`;^$x1Y_EC_)x0 zb_xe;k}orlj`A1Z92l$gRe3e5&69Q)e|~8~#U*md2m@y+{{!8>(EK^KcMt4eZ+mUV zLF=of`rUhJq+kBH<pJ-kjZ!0-OKOQ+0;twsAde8T0a)eGJohMoqX88R*#AzVFz@Qk zudO&FXR4t=t5}Rq#mr_y{_42d%Qdw=GPY_UpAlZ_cpmit{d+#<RY3TDoJ$<>*UUIS zsW<)}pex>yMx%&FQht%!RZpXDhpR#P9c7`C2frAao)q&8Y6hM6v$lWBczO#PV$3%h zI|bEi!QX2N#tVnG9U-BS^2D2ihEIYjI3`crk7J(TC|k_;f#?KpDaA2mtDAs4N@*yO z!ru4=+{0)ME4ylOsZYJhDLR(qQCwe?pWTzS&!WGu!4OvaTX0XRE9k3CNyV>GX#3~X zPUlNm&$Pt{wTtdSp#WN~l^>$y*mh~+MZTyf8#C|rdSNJz;oza<<Ldu`?LQCY*6D`7 zt<m-^5`M0(zRcdR8t!vB(GN%XeC3w@U=-qX%HVwq$}oybxN%9SCIcwvwYz<S1M=mW zva*ElQ`Eld(<JBw)3*IbtLQvWk?>hEX2m0<$10}F_0n{-(!4JJ*~QybpYffd#VC5b z3$<^jML5@h*}zLXT3NUg!PbK6vJFSh<-ai3h6M(CPY<Qg6`h4%1nj0OoV;>E)t=*5 zv^b$Uzr9yM@ws&h-E<zrQ;2I0%iSQVqQT!1(=wM}21DUVZqph`o~9-)oE_!4gAO_! zX1J)vwMd^_oRok~f7CYVSNcA$NxzowH-8q$65X@qE+a5aBSeSAI{!8#`BH(7X2^HU z!Ogb){2~IE2zu=i{*2*gm8Cm1q;XSmx?xVB?zA?5{p2E_t|nL1Mqv|ki+Nh`Pb`PI zul(DecyD<4@YWN_on{@5{=yS0hYe%1M*woAqB^`tP+r{ykgk|++-y|q1?gHX?P5{Q zl-d3_MD~&In*b4VgVmL+uL{!kr5;x>jKkB{j!PEwkBpoqM^1>p*_Z93Slf7{QQ#A# zQwJk?WPCRRzVc$<-6~oxuT$_G=~!U528W%V5)J2S@N|-J4lDZ|Xp8#*z&=kZzNa+V zTuz~!*<d>~D@&iuGF8B!+9UN^>HuqFS1+_yjVG(76hm}f;_@?n1Fr{8oEr7Je?5%L z;_FAOZwMHQdxBOfgz<V;rpEi6M6sB=_AsyrcO9?tir-}XB_O&xx~ps%#d{Wt-t#X7 zp;YmKXYTZesa-q&t5au^RX~ma<@|DhU6fB@(9Z=slC8>~AP`1|3JFIIm*2%~VPkSq zr2Yi6GKoy5{5|xLGiJtJ(oJr|Q)=U2vCTb#eQ(`ZIZoIT_*e-f6DmG0Qlk$Y3XKeG zGz%KzKf3Vvh?&&=rX$j1ecbp-w}o7a)2+A%iNW&vGJ16xFy>fjrr{UV$9$iL?OH>| zb_igC?sN)(h4i+a679tahH6&AD|8x<jC9Oo4qXSu`dm~+w|sTSo^QjUy&>q`+6C3h z_38p0!KAq6p^dt(Rsz6IDXqac&gQK+=|yvda?cX>b}H;5Oh}Z)cJIe`U!|J+p0;r_ zYyJokHV&oDRnpN+t>7vDezWE!_c`oEoF0&f!>D_E5S?{Ww&eCtRE@>ZcbaVBQvWQ? ze<ATR;o*O`y`HP=`I?};V<e(iXM9ahdh?hUuk@GNC&+q1as<m)aBg#%cCtYLBD9j{ z{t3k6dLvag1nfzAgiuzwtqiTF9c;gMdirbwYg88&eHYC{RnFXbB-D={o6K~p;ehd- zPB*SCTuGsCo|~?DxxvKo)F!yUA%ou|k|w{aCf|5_rR94yFu&J5NhTmX`kBJzmWhGN zl;s!XG5dMF7MY_9vK4+<i3)T4coU(^Md?g|_G}{8v9H&@o;VkKxsZ9~W|8X*&l@Z< zXV?ikF{+|(g*u~?%E-!l!89eGPyeWEn^f&Y8XBua=*WdGP7OdO;-!6G%5>}eX1gU# z=J;`U%C_;pK1Ps8e7@7GjY@^m!;hJEEnQ4**RJgEN(}X7^_D2rOwJS2#9`P-T3@L$ z1E)T+gB*fO{|;51()PJ}D&BP1TBhqlOQdqZ`utvVHPXgJ?BC60|2^;SRryuw{5=Kt z`GY`FYxX<ejP=%qZNgHr^-NnDrzrSXp(Ivim6ATExhlY$RnUq2G$NMPV)FH3g^%N> zGY^P(;y6#yDW}I|Q+MIn9&F*;Zm+qw_~Y~1b6PbnaR9jWgQg5R@H4R<HRxvHz-z5t zP*P%V;~47O(W?g*Z+r@1ufO|_%QZdNV!A~u2aLLSxihXjL09(vFi@0`(7AU@s%FRH z?)4zP)BY;=iCMVkqm)6j7dc<Y2O@45V9+?0ru&eLf`I?UaqEtw8#_=xIp3BKU+7ei zC><(n!nSg-q)FayY*aKc2AYq00d<1C{9al#>b~36gCYjkNE*$TP%HAke~FGCYV?5~ zh`$;WaCU3QSbwX3MF<r3=pS_c_444#&wqEQ-urgXJNjoF-X&I}=}T8rR#3dDNP`M- zra+)pXf+~qf);efzqN77jn*2bnQHBjV3#PmEGu2v5)FFJ6=F2AMwHxZY+l8%ytg3U z7hhsvg(dLH`uXc7iu7vGOvzP%;$dHLza4~+G&ezAshiqWXL=j!Me2Ru(|5kjH3%#u zc&YT_#K#^aFg9<`lk{{=Tl;0b4=-CLqMb*1Sv&#W?Ewq|KA(owuB*|pA{tK2^hp>5 z`gkjwst2^LUj{(t3!`!C_!0PEVL@gD>U$t$PR#0d8#Dmg9+57Kxmn?V0FfMRn7vbC zIo%2<Ai>T->4ruhL0Wa@fnanv*JjDXfTW3_sFAyVkxmqmmDxs%<Y_tv`9}RP9+v^f znurM)1VQE)z=qNkh%-+5#fmY0y`^8EG*y4+$|w9Es6IRZ`(Nfb_@!l4)oUl%E1|1P z+H@>h@Qag5&fuluvTxOQqJ5lt7R-59r46JwwK2g4$9sDe`#st4&s=NDgLfoaA3As( z4Uum%VJ#F6Os48b&#LCbF5xSKDFRh+n>jI1;|H35M5<6FX~*nMqe=zp@o>L?Uie9j zz={IYC5b%7Z}6V<QU+RB^(KTs;go3Yc{2<g@b03co;D7CY8@_{*VN-~?)_|Gxl!Y~ zl21JoKa&12O4yI%s|LMx(m$Sr`#HvF0u56J;@Y1L;{9RgLi&%GpYg>B#x2%T0>}Eh zOnbK@Pols-KX4IOBFPD(xNpFx^f^LL*PCzou)wF5-)1n??0{KS%WLId*V=Iyl=~#D zaxxxck-lGgmb4#{RorqP^dScDR*O%%SYbKgMAU4nkjvH0y%;oHm1Oz{uKVW2|L3?C z9J#oy%op_>ad*vM%0m1d>-Qo2lo*(?q*}Y6D?@6rFbrCm<|fw%z&y!@M$Mtw!Z%KZ zEmNoq^zXaTEUe)VYrmO(fuIFjBHowV8Wov4{9}8RXiw~SigB<|N?(!j$xpHSZH8RR z5ivMbUl}-+G5@}Rr6YI@7R^h%QYSA3*XAAZjQF8q&W|mvD{*5Ja-}X;%HGZ*=V0k# zBwg7QVcA}P@f9z-ovLp@aT2u;zaeu%lxSO{_zg|pSaL+``G`E(z{@#sAz_a*h2?qa zm`Apu?x5kG#QG_|?_ZerHfhscRRSbqC7LccqL7g>E=Rbst|A-%YH1K7ZzdfIgc;bl znYvXsb!^@l<uY8>JZ>!+ePANw57d4}Jp7M`$zDu@-1yNOJ=fOyHLmHVOp`}9ur#IK zE)*CO=@^;6Q!}&^T%$3a+uj}&5K#T)_gyma0DW!>6q~dnZSYat`}o3OYwN+MC+b87 z38LH?l)DeOoM=N$j;`?qH4*sxEgzM<nIGg}IAGNgM7zf2fY(6^LuZtHACP~98SfxA zk`K2y8aDnksT}p_2v!v&E+~v3^9SVl`cIJJwaimS>2;mDbHgC+ojZx$fE0QN@7&ty zH@CR1W}x%>@1RCcte__txL-Hi!M<PBH2_uk09U%O{rP@<A&e9mID*6woNrfa#?Ir< zQi_17?b;AWUJt*o$Qp{M@Ya$B{5oy?@b9#|fO5vmS1VTtujcwVg^(&4RHyHvd=($_ zR~LeS%Z-gU#q?RIs%@SY`X3lJtM5PjPv8ttYm8<Fcx_m^$66Sg))V+oM0m4KWrj+s zNdL?@6Evp)-|m@$sS5Cki<4jfm1Rh<Z;iqtNHp#5<D#xfl&*^cK<A@D49d3A{xEBk zxu;8URzGI6V$u925qF8;^ZN>;jSJ0P7Q{&qa<x<hvVEYg?6JEBk%%DS9so@eXu-}Q zenO_w%<u6)mL;p}CZC8i9I53(lhKPOC-*MHpww7PM?OCJc4knaP<FWvOJjnWVb`#i z+Onb&;@=_NvAYnnU<+bg0tp^a5g*JCbGN*yc2mifUEz*3IpwdT3b)D=CUvk*UJoUg zL?s%Sd*~6{L2eG6vg4s|sKX%sv(ts(;>~0GeNE=n@3#-5i{cO3$0+E+F{LpftXJ^y zGYu`r75_kRpYlP@f4gJs4c9#?jNWWdks0vk>u0I5cCofk>8<ZjTw_iXpCMweg`NbZ z5bMTv!uu(~M;fBKM8=nvxFH(hS>BW9dFSWuW8q?R8DeJwn@(D&@~)0<vs=Wo--gQ9 zSq<Sll5g|}S`e&78DbP5DX}o|HSplzrt$4qdR_8pHBQs2j{MWjK5kY0yiVKQr!uPC zdo~1##Z241zO)gNz)_>iZF&1zI=XT49ECJ6BU<o&xx0=HX)UryPVvCKgDta>!UG@y z4guIKm}^W>wd%9}0VU1g7+}+#Do63uS*GvPd8aC*`_P!isKmh^S`VMc90hbpb$fq3 zT%Kqcb1R(-%a5XAwCl^y>zIZFr>=#e+CH-KHkVL^(TyTSDV}xaJ4!qeWBi+J_MG-* zsA$bg^!a*r`i%a;R&7n`$rJ;_1AH;L(os7zGYEtO<R4S;e?wi*k@COnN92Xmg;*EQ z;zCVrykjeb4+Vded!%QM&H8<dERcjYY`D|Eqg-p4BgNUUHVlb)5Yh0y*6#Y|@5wu9 zd%bWvA25HueCDcHzZ%9@rK|sAkHG<=IKDeQ3bwumnEUv6)*&Af$D*iN8omj8)tE(T zL!HDXJkg4OGI_!n9pVKF0n1;a%Xwm_Hf4BHvTH~h0>=XK--puc&l8fzwB1$I1U~_& zA%efu1Rxr&K?4Ncs5`D$$tUkL57)L=oI(MrgXeaC2#!^is+)>x@6*=)JXAz9i7ieX z(zkPuLOwKq^XfhD>AYU0&5T6Cd)*i*V5(hpg!%Be8Nx@`U-5qLSJh_==yKuG6$02_ z+0`f}ef93{G1u{_W^Lwe`I>dynH2a5nv$WRsPqOvY9qDVYmk)n=Zt-@@63b0C83WA z-UZ=uk+fHt(Jv7@Cb1efNobMt(KW?aV2AlE4~DY&S#_LK$OdYq_>uEFI@%4_jg5_i zqNDN4@J_e6ciM>C2w{abR|ae;L@M@}ZrI|(XIJ|Ay>1xgX$6<aMYuN_HA}z)*kTb? z3Gdkk9_L@ng;qSaV{4HGBC(3j)JW?t>Rb~3lwggTysHkM&2U91Sl-Nyaw6<1g;Ves zKc8sTj8#*J<MEKLsK;H}Haa$N(CSs7U3*AWxnWY80oM=;GTV)`e!m!1o~|7Dc1&;2 zji&cbYITZl&-|xxw65g1aNjJc1)1OWJ?FD^?7S{Iq*%sJNGjoS!q~R(9A<nF@MW(B z$!1OLT(2Fmq=VC4Qe;oo?~L;Fu;aKRQygKP5aN7}A(qqUy6H>xY#_96KYQ~H_9#U% zdYk4#-nLix6WjXBC;kb%?;dDc9^Va4%#O}|&yV&;hDaRq%vZ4Le6bHNA3|yx#{IS> z-`~}aC2JH+PEOi$u(rC*6IZLS41e*go?gj*+HuMLetLV(<Q#SG`6QjRY&8PrYzEcO zHQ5!i>W;bS38G1xYj+2(2XyuPRx|*eM4O*FVb0G9GYQ!f)}=W4U)ao07)=hZMvry5 z<GLI@%=6q|*ldwR#wiq{KbC7Gv2*SA$HpsMWx+5|3er53i&B)YBJ0PpqQKz(=0}m- zc1%`_1beBUF|w4CT+Ip4Kkp=zNzD4_2-CeDK7{uDID|2)4)!F$fHf~#DRX^R2EUQ} z1N3-xjz?F}aY)pMqRmPlO(!b`%wHj^=Sh!J`oh7S2eQ(?F@)i+NL4{sY;<m$VWzLn zIhx0OH_T;&UA1%I|LJR^+{C~2wS5mY5Aw&YpXS@tN_#6b*xOk=VOTZmY2{`XY=BpE zs$4MRdSt)_{5(@MR%aBeVXQebHRWNSYno(oS#SkedP+h96t+#cuFz(3yhkF*iWp*f zF76Z>zU1493s2s6rR_?%T*XBP83*Mq6apt7Aw(T>PEAJiJtv7bdAhAhPmT=Nh}H>l znipu&QplAzAmyb*!`3!iw-mKC$0C-P^raMRunfArlO3DYBrRP>bQk+Hh*|h*8dNc{ zSpT#fmmH-W(7{B8#w1<RNl`s=>_*-X68Mb}b>?V6XPeFU`%wMB{_aGA-I{J&@ey>w zVxV1wS7R1X1smLPyDIx+s9ysU-oG&>T+2D<i!Z-bJ`QP;aB9lbtDMzsa2Z}2OzVm2 zgg-e#gt#Rpke;OI&w^glH)TYmrCrm6ji%m7eP^g2=KOQM9zM+b&*_!%vvkksPT!y_ z#>BAQumv<+M{LWh!6u9+=7Q-{aKXxj(Px6sof_ZJ?Gs<1b|%vSLD4%tDEChd<OLCz zO;Er*uHyU_NvI_5c(0E@Lhm(N^8Ul|Z+{j0bwV6d3l7wTPFCiBE|q33kA#3(OJ(lx z@}w2HYK8iqO5&Sqcga=m3+8XlZjF^aHu)i&bCc!Qquj5k&HDztdU+Z&!moIOnKCLB zTk<}<<nZPE<NBc?dY#dq@Z!X|E~i}B8nfqDSw+Zk^qON_2!J|Tk79jBR`m<!(KhH> zuQkO<QHu@jN9>E4C*zX1h2OYiQ%rw;dUiuXGCL*PI%funqm&-U>L1=l&8K@ifpMtm z@9NUUSM<!aRTQC&Zu9K!%O8F_vqU>A6E9YCbqZ<bcAuX<^e2|iXaBqQXO`z{dY@&w z?DU2T40>m8#9xRM@R}%Chqw%HHcBXS79d0hLrb7IEZQaUA~JFH_QTNNFaG1Dlam74 zIywL;geQM|<|#~Rov54TN5Rt4;|a8S)0``B-LXRG(Pi}&ZTSQU&mBNi4W1aGoUT6C zF57k&a%2cs3k90JRFvVpdIXUj){o3b+}y8Yb86J<*V3?{z>nv^AxIYzcR#Zl{hQWG z((7o>5J2TKJFhaN{ak7^mFd<-_w;cN7Ja3YP798i*Upsi?RuqFM<;t1C7b=wV<nmM zRo`j-@g98intL~K^784<T`v?rSH$m#$|8UiR<?~fRyT*59JXFoz@gnD((dMslDCr9 zavLTloKpi3@hqK_vn%85DYo?Wf80v{jbWn{S10;!IKy(kxU7E>l7`Hj_S!kkmv({E z{k)UiezCNK{_jf^j$fODM;Hb_&8}rG02qkI%I&h@>eWJd4t)7Fntnq-y1`vm;R^c% zTHctvEpx0fiZ5dEXHv1iRTp(w<$RRQ=1D<KfX#;(Lc#%<Io<Mhu5|f(U5B;d;o6?8 z-3mnTN$2vuuyZ>KC*w@=SV!V7Y2Txv-UT3R6xt?uyPaG1rg~TLPlZ_up`bSTqi)-k zoe@Tv4(3P?l~%oXq2+b`-Qzd9{GXb{A1+H?9V?AiN$q`WpPf)izcQ?^;-F02ETKkJ zEcxn$SZp=WldWDlg&}8!h7!Cas1$4++D-C_|F%zjM2${dNbz@MeyrKR(~&2Gq$57g zO-lV?;Jhf?gq}DukK4=pd61cRfI$qBhUmuF53H?bKJ(c0O9GF#`cY-4o4<q3$f-7a z=4Kh@wE1TvzDaWGZLqMRj0I-IpVHDF!RO3!N8#pDs%k$2@r}=O&Aqn+(7J$1r0?XB z0n(u^AZ#-zxn?uZyzz*2Rl{~V06nw1qkA8#%4VBi$P{cyv}i@#JIz;YoC+#E?Crgp zLPA$H;^JvR?mZctok%Ll<$Q5SNa2qw3q-mNnyKmqu?7Rre(#0SH#?*f9}lHPnxjLe zWv&u*mCW{nPq5+F6JRN*eE2<7dRUuWjSm@%L9w;o(>^{9@#=ZZqC2XgVex{BetR+i zP6O8mSGCfx+H#c1-@C9p7_OJf!=|`lZ8_<R9)(xX=mMRUFvsgyocF>;0fGVC9i`Ro z&<TL)Y2+Qy#4`L~_HwP<dB+C10|?6tzBtTh0#*MU&#XMnZR~dJROdK;O+RMqi%ZkK zfd2|{e@)oMLlgh8Manm?fVA5@D~}k5Enq@!fm$5=Xot?*9x^;_m?pKq>#V>{g`*#{ z&Zr_<Zb+Y&IdF)RTaNGIjUz|-TR3G7X(XiypFpH@32<Lh%Xs%NOzT_V#5Y!O&j|2n z12{MsIfo+Zg}RIrca3^LRX`w+T#i=S-j@8YZh$Z;T*p{9K0)BSy6#}yBtQ048N%+| zQAq)FV7|({_o|QZI|j3#kCx9LLc);I5!cz@kQ>DqpT;+D+_m-a7Fb+)e8NRtq7$(8 zQ1|{!Eu|x8Kj+!16iGI2oZ=&IG=#@Z1KkKSY#btL6=(ACzHUZ`b0H5{U7u7Uh$`Le zxEa(~5;#Y&vgMo@)V|ie6d?ql5-Puh30?=-)CPlD!4&Up8|vJ<WG>ot&!>7|E6qUx zpIQ?+?DjKBR|Eja-8sEo&@txc^Jy(!<3U9S`N+@^5-2*bls_%822*yLEM?A@G7uf6 z2k9Ylw58f}U-2-%Hjg7ZLaoLqCTkVD6WSm8d8h6^S=XGtQTIKnTwDcg7~j7@)s~3f zmX12UmOEOK=&g8ZyT-l8Q!4xkVrOQkDJocpCiC~c^Y7<^;)8$aao<vxTJPc#HxC3| z=rx_nZ%X<7Rf78x@(ot7)2KbJ8O&|J3aV@`9=w5h4p$A3xkz9lo1rd#W1aHyf3f86 z-Pv0G&Z`ZQN;fa$abh=ij^nMZ^_JFM<@LJ9n|ylc=l#$O6Unbfh&aIV-5Ck3Tx&)m z#@fECa$HIgI$IvtYmk?9MKBXqLLlU@4Bu+k$P0cPlnEqi@T);!D$~g=bg<@0!xXaO z1VNZ4PAXOKXg6)Qe7b&aWW#2Rq%t>L870ikrf+`>c7`bseL^ZZ!1^&vK9n8uSxR96 zJ8#YDq-GA<^;6|p+|k@pm~O$Ss{qmO{i5ilEf?;O?mt^uHG4N@4ya-oZ6;lkkc$X{ zaGG<~(ki=uC+eZRjSgROd#hidRNCfNSS8$s{rZ%xzJS{HG2lc@;Qv=-kMH}h)FAHP zxOAxhUH72OvX->A^n@W?;f?XaSH+6jiayzeWTAOSTaiSLwJj!zwNP)#nKiJb|CQxC z*hcnK?%(?qjEH~lz;m5CE<pQiObc3R3)Ut<k2|1ciF8?^MTI7^v<IVk%;-$hqvCi# zyB{pvYcoUZ)Jm`00_F(Gl4M~KZ<kyH@1Z*950~$A%6kZGMc+QS7%gCaGA4O(lxHNq zjn-~(umr?fH=El8A8emXz>h~dlhE&|fzX~`lfu<~k%h_X{b82Xb5R=lBH+!vZgXOY z&<n?xKdf=Hp8b%j5fyE$Z&H`7q0YB);Jj?hiJL1KcP_j<4%5^crgmZrfpLh6eNh=T zQKL;R5s*5O^_apLu!I(wWG5YwZMT`f%dTRKUpD=7tNtmm|G#WayC7^rH+6btMc;c` z-Y7OZ+@I!8166hz!7P6Y$1m`@1|n5+1U@F~gyQtx*07aB$={BJSz?*&_Dq$*+1XjM z&#O|K1njEBDEIF5r{$vS8yi~r6zzBC?^r?0p_FrDI-ay8{xmKJqf(fr7m#Di_Fgai zz*Jf@r7riwM|F}Iq3idiNruI_cUBiWTWDjWwB0gyo!QamA9>?6Ot4=n=bm$(9t!zo zqv2QU5i${jvetc#d9oJi$7A%M!fKSAFbY}dcR9L9SH_Hxg2QC$doamLHZJA%;kNqi zLEyB8$3mYkTe6J5Fh_>(FEbqh$0z&r$b<kXsTWS^bHyr-a;y-+I^!neBKXy{HJ}rZ zU%s(=YMbJyq1w(dJJ$wiL7�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 fdBa9 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 K2wr6CbN;{TA*0a% diff --git a/docs/_static/style.css b/docs/_static/style.css new file mode 100644 index 0000000..ed74eb4 --- /dev/null +++ b/docs/_static/style.css @@ -0,0 +1,35 @@ +#version-warning { + top: 0; + position: sticky; + z-index: 60; + width: 100%; + height: 2.5rem; + display: flex; + column-gap: 0.5rem; + justify-content: center; + justify-items: center; + align-items: center; + background-color: #eee; + border-bottom: 2px solid #ae2828; +} + +@media (prefers-color-scheme: dark) { + body:not([data-theme="light"]) #version-warning { + background-color: black; + } +} + +.breaking-change { + font-variant: all-small-caps; + margin-left: 0.4rem; + color: #f55353; +} + +p { + font-size: 1.1em; +} + +html[data-theme="dark"] .mermaid svg { + background-color: white; + padding: 1em; +} diff --git a/docs/_static/versioning.js b/docs/_static/versioning.js new file mode 100644 index 0000000..819a83e --- /dev/null +++ b/docs/_static/versioning.js @@ -0,0 +1,104 @@ +const loadVersions = async () => { + const res = await fetch( + DOCUMENTATION_OPTIONS.URL_ROOT + "_static/versions.json", + ); + if (res.status !== 200) { + return null; + } + return await res.json(); +}; + +const addVersionWarning = (currentVersion, latestVersion) => { + if (currentVersion === latestVersion) { + return; + } + + const header = document.querySelector(".bd-header__inner")?.parentElement; + if (!header) { + return; + } + + const container = document.createElement("div"); + container.id = "version-warning"; + + const warningText = document.createElement("span"); + warningText.textContent = `You are viewing the documentation for ${ + currentVersion === "dev" || + parseInt(currentVersion) > parseInt(latestVersion) + ? "a preview" + : "an outdated" + } version of Litestar.`; + container.appendChild(warningText); + + const latestLink = document.createElement("a"); + latestLink.textContent = "Click here to go to the latest version"; + latestLink.href = DOCUMENTATION_OPTIONS.URL_ROOT + "../latest"; + container.appendChild(latestLink); + + header.before(container); +}; + +const formatVersionName = (version, isLatest) => + version + (isLatest ? " (latest)" : ""); + +const addVersionSelect = (currentVersion, versionSpec) => { + const navEnd = document.querySelector(".navbar-header-items__end"); + + if (!navEnd) { + return; + } + + const container = document.createElement("div"); + container.classList.add("navbar-nav"); + + const dropdown = document.createElement("div"); + dropdown.classList.add("dropdown"); + container.appendChild(dropdown); + + const dropdownToggle = document.createElement("button"); + dropdownToggle.classList.add("btn", "dropdown-toggle", "nav-item"); + dropdownToggle.setAttribute("data-bs-toggle", "dropdown"); + dropdownToggle.setAttribute("type", "button"); + dropdownToggle.textContent = `Version: ${formatVersionName( + currentVersion, + currentVersion === versionSpec.latest, + )}`; + dropdown.appendChild(dropdownToggle); + + const dropdownContent = document.createElement("div"); + dropdownContent.classList.add("dropdown-menu"); + dropdown.appendChild(dropdownContent); + + for (const version of versionSpec.versions) { + const navItem = document.createElement("li"); + navItem.classList.add("nav-item"); + + const navLink = document.createElement("a"); + navLink.classList.add("nav-link", "nav-internal"); + navLink.href = DOCUMENTATION_OPTIONS.URL_ROOT + `../${version}`; + navLink.textContent = formatVersionName( + version, + version === versionSpec.latest, + ); + navItem.appendChild(navLink); + + dropdownContent.appendChild(navItem); + } + + navEnd.prepend(container); +}; + +const setupVersioning = (versions) => { + if (versions === null) { + return; + } + + const currentVersion = DOCUMENTATION_OPTIONS.VERSION; + + addVersionWarning(currentVersion, versions.latest); + addVersionSelect(currentVersion, versions); +}; + +window.addEventListener("DOMContentLoaded", () => { + loadVersions().then(setupVersioning); +}); diff --git a/docs/_static/versions.json b/docs/_static/versions.json new file mode 100644 index 0000000..2780101 --- /dev/null +++ b/docs/_static/versions.json @@ -0,0 +1 @@ +{ "versions": ["0", "main"], "latest": "0" } diff --git a/docs/conf.py.jinja b/docs/conf.py.jinja index a6c0451..e517964 100644 --- a/docs/conf.py.jinja +++ b/docs/conf.py.jinja @@ -1,46 +1,43 @@ # Configuration file for the Sphinx documentation builder. import os -from {{module_name}}.__metadata__ import __project__ as project -from {{module_name}}.__metadata__ import __version__ as version +from {{ module_name }}.__metadata__ import __project__ as project +from {{ module_name }}.__metadata__ import __version__ as version # -- Environmental Data ------------------------------------------------------ # -- Project information ----------------------------------------------------- -author = "Jolt Org" -release = os.getenv("_{{module_name|upper}}_DOCS_BUILD_VERSION", version.rsplit(".")[0]) -copyright = "2023, Jolt Org" +project = "{{ project_name }}" +copyright = "2023, Litestar-Org" +author = "Litestar-Org" +release = os.getenv("_{{ module_name|upper }}_DOCS_BUILD_VERSION", version.rsplit(".")[0]) # -- General configuration --------------------------------------------------- extensions = [ + "auto_pytabs.sphinx_ext", "sphinx.ext.autodoc", - "sphinx.ext.napoleon", "sphinx.ext.autosectionlabel", - "sphinx.ext.githubpages", - "sphinx.ext.viewcode", "sphinx.ext.intersphinx", - "sphinx_copybutton", - "sphinx.ext.todo", - "sphinx.ext.viewcode", + "sphinx.ext.napoleon", "sphinx_click", - "sphinx_toolbox.collapse", + "sphinx_copybutton", "sphinx_design", + "sphinx_paramlinks", + "sphinxcontrib.mermaid", + "tools.sphinx_ext", ] intersphinx_mapping = { "python": ("https://docs.python.org/3", None), } + PY_CLASS = "py:class" PY_RE = r"py:.*" PY_METH = "py:meth" PY_ATTR = "py:attr" PY_OBJ = "py:obj" -nitpicky = True -nitpick_ignore = [] -nitpick_ignore_regex = [] - napoleon_google_docstring = True napoleon_include_special_with_doc = True napoleon_use_admonition_for_examples = True @@ -53,81 +50,88 @@ autodoc_class_signature = "separated" autodoc_default_options = {"special-members": "__init__", "show-inheritance": True, "members": True} autodoc_member_order = "bysource" autodoc_typehints_format = "short" -autodoc_type_aliases = {"FilterTypes": "FilterTypes"} -autosectionlabel_prefix_document = True +nitpicky = True +nitpick_ignore = [] +nitpick_ignore_regex = [] -todo_include_todos = True +autosectionlabel_prefix_document = True templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] # -- Style configuration ----------------------------------------------------- -html_theme = "shibuya" +html_theme = "litestar_sphinx_theme" html_static_path = ["_static"] -html_css_files = ["css/custom.css"] -html_show_sourcelink = True -html_title = "Docs" -html_favicon = "_static/logo.png" -html_logo = "_static/logo.png" +html_js_files = ["versioning.js"] +html_css_files = ["style.css"] +html_show_sourcelink = False +html_title = "{{ project_name }} Documentation" html_context = { "source_type": "github", - "source_user": "jolt-org", + "source_user": "litestar-org", "source_repo": project.replace("_", "-"), } -brand_colors = { - "--brand-primary": {"rgb": "245, 0, 87", "hex": "#f50057"}, - "--brand-secondary": {"rgb": "32, 32, 32", "hex": "#202020"}, - "--brand-tertiary": {"rgb": "161, 173, 161", "hex": "#A1ADA1"}, - "--brand-green": {"rgb": "0, 245, 151", "hex": "#00f597"}, - "--brand-alert": {"rgb": "243, 96, 96", "hex": "#f36060"}, - "--brand-dark": {"rgb": "0, 0, 0", "hex": "#000000"}, - "--brand-light": {"rgb": "235, 221, 221", "hex": "#ebdddd"}, -} - html_theme_options = { - "logo_target": "/", - "announcement": "This documentation is currently under development.", - "github_url": "https://github.com/jolt-org/{{project_name}}", - "nav_links": [ - {"title": "Home", "url": "https://{{project_name}}.jolt.rs"}, - {"title": "Docs", "url": "https://docs.{{project_name}}.jolt.rs"}, - {"title": "Code", "url": "https://github.com/jolt-org/{{project_name}}"}, - ], - "light_css_variables": { - # RGB - "--sy-rc-theme": brand_colors["--brand-primary"]["rgb"], - "--sy-rc-text": brand_colors["--brand-primary"]["rgb"], - "--sy-rc-invert": brand_colors["--brand-primary"]["rgb"], - # "--sy-rc-bg": brand_colors["--brand-secondary"]["rgb"], - # Hex - "--sy-c-link": brand_colors["--brand-secondary"]["hex"], - # "--sy-c-foot-bg": "#191919", - "--sy-c-foot-divider": brand_colors["--brand-primary"]["hex"], - "--sy-c-foot-text": brand_colors["--brand-dark"]["hex"], - "--sy-c-bold": brand_colors["--brand-primary"]["hex"], - "--sy-c-heading": brand_colors["--brand-primary"]["hex"], - "--sy-c-text-weak": brand_colors["--brand-primary"]["hex"], - "--sy-c-text": brand_colors["--brand-dark"]["hex"], - "--sy-c-bg-weak": brand_colors["--brand-dark"]["rgb"], + "use_page_nav": False, + "github_repo_name": project.replace("_", "-"), + "logo": { + "link": "https://litestar.dev", }, - "dark_css_variables": { - # RGB - "--sy-rc-theme": brand_colors["--brand-primary"]["rgb"], - "--sy-rc-text": brand_colors["--brand-primary"]["rgb"], - "--sy-rc-invert": brand_colors["--brand-primary"]["rgb"], - "--sy-rc-bg": brand_colors["--brand-dark"]["rgb"], - # Hex - "--sy-c-link": brand_colors["--brand-primary"]["hex"], - "--sy-c-foot-bg": brand_colors["--brand-dark"]["hex"], - "--sy-c-foot-divider": brand_colors["--brand-primary"]["hex"], - "--sy-c-foot-text": brand_colors["--brand-light"]["hex"], - "--sy-c-bold": brand_colors["--brand-primary"]["hex"], - "--sy-c-heading": brand_colors["--brand-primary"]["hex"], - "--sy-c-text-weak": brand_colors["--brand-primary"]["hex"], - "--sy-c-text": brand_colors["--brand-light"]["hex"], - "--sy-c-bg-weak": brand_colors["--brand-dark"]["hex"], - "--sy-c-bg": brand_colors["--brand-primary"]["hex"], + "pygment_light_style": "xcode", + "pygment_dark_style": "lightbulb", + "navigation_with_keys": True, + "extra_navbar_items": { + "Documentation": "index", + "Community": { + "Contributing": { + "description": "Learn how to contribute to the Litestar project", + "link": "https://docs.{{ project_name }}.litestar.dev/latest/contribution-guide.html", + "icon": "contributing", + }, + "Code of Conduct": { + "description": "Review the etiquette for interacting with the Litestar community", + "link": "https://github.com/litestar-org/.github?tab=coc-ov-file", + "icon": "coc", + }, + "Security": { + "description": "Overview of Litestar's security protocols", + "link": "https://github.com/litestar-org/.github?tab=coc-ov-file#security-ov-file", + "icon": "coc", + }, + }, + "About": { + "Litestar Organization": { + "description": "Details about the Litestar organization", + "link": "https://litestar.dev/about/organization", + "icon": "org", + }, + "Releases": { + "description": "Explore the release process, versioning, and deprecation policy for Litestar", + "link": "https://litestar.dev/about/litestar-releases", + "icon": "releases", + }, + }, + "Release notes": { + "0.x Changelog": "https://docs.{{ project_name }}.litestar.dev/0/release-notes/changelog.html", + }, + "Help": { + "Discord Help Forum": { + "description": "Dedicated Discord help forum", + "link": "https://discord.gg/litestar", + "icon": "coc", + }, + "GitHub Discussions": { + "description": "GitHub Discussions ", + "link": "https://github.com/orgs/litestar-org/discussions", + "icon": "coc", + }, + "Stack Overflow": { + "description": "We monitor the <code><b>litestar</b></code> tag on Stack Overflow", + "link": "https://stackoverflow.com/questions/tagged/{{ project_name }}", + "icon": "coc", + }, + }, }, } diff --git a/pyproject.toml.jinja b/pyproject.toml.jinja index 494129e..4d432a8 100644 --- a/pyproject.toml.jinja +++ b/pyproject.toml.jinja @@ -1,22 +1,12 @@ [project] authors = [ - {name = "Cody Fincher", email = "cody.fincher@gmail.com"}, - {name = "Janek Nouvertné", email = "provinzkraut@posteo.de"}, - {name = "Jacob Coffee", email = "jacob@z7x.org"}, - {name = "Peter Schutt", email = "peter.github@proton.me"}, -] -maintainers = [ - {name = "Cody Fincher", email = "cody.fincher@gmail.com"}, - {name = "Janek Nouvertné", email = "provinzkraut@posteo.de"}, - {name = "Jacob Coffee", email = "jacob@z7x.org"}, - {name = "Peter Schutt", email = "peter.github@proton.me"}, -] -keywords = [ - "programming", - "developer", - "tools", - "jolt-org", - "{{project_name}}", + {name = "Litestar Developers", email = "hello@litestar.dev"}, + {name = "Cody Fincher", email = "cody@litestar.dev"}, + {name = "Jacob Coffee", email = "jacob@litestar.dev"}, + {name = "Janek Nouvertné", email = "provinzkraut@litestar.dev"}, + {name = "Peter Schutt", email = "peter@litestar.dev"}, + {name = "Visakh Unnikrishnan", email = "guacs@litestar.dev"}, + {name = "Alc", email = "alc@litestar.dev"} ] classifiers = [ "Development Status :: 3 - Alpha", @@ -35,103 +25,185 @@ classifiers = [ "Typing :: Typed", "Intended Audience :: Developers", ] -name = "{{project_name}}" -version = "0.1.0" -description = "{{project_name}} is a Python template project designed to simplify the setup of a new project." -readme = "README.md" +dependencies = [] +description = "{{ project_name }} is a project that does cool things." +keywords = [ + "programming", + "developer", + "tools", + "litestar-org", + "{{ project_name }}", +] license = {text = "MIT"} +maintainers = [ + {name = "Litestar Developers", email = "hello@litestar.dev"}, + {name = "Cody Fincher", email = "cody@litestar.dev"}, + {name = "Jacob Coffee", email = "jacob@litestar.dev"}, + {name = "Janek Nouvertné", email = "provinzkraut@litestar.dev"}, + {name = "Peter Schutt", email = "peter@litestar.dev"}, + {name = "Visakh Unnikrishnan", email = "guacs@litestar.dev"}, + {name = "Alc", email = "alc@litestar.dev"} +] +name = "{{ project_name }}" +readme = "README.md" requires-python = ">=3.8,<4.0" +version = "0.1.0" [project.urls] -"Issue Tracker" = "https://github.com/jolt-org/{{project_name}}/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc" -Changelog = "https://github.com/jolt-org/{{project_name}}/releases/" -Discord = "https://discord.gg/XpFNTjjtTK" -Blog = "https://blog.jolt.rs" -homepage = "https://jolt.rs/" -repository = "https://github.com/jolt-org/{{project_name}}" -documentation = "https://docs.{{project_name}}.jolt.rs/" +Blog = "https://blog.litestar.dev" +Changelog = "https://github.com/litestar-org/{{ project_name }}/releases/" +Discord = "https://discord.gg/litestar" +Documentation = "https://docs.{{ project_name }}.litestar.dev/" +Homepage = "https://litestar.dev/" +"Issue Tracker" = "https://github.com/litestar-org/{{ project_name }}/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc" +Reddit = "https://www.reddit.com/r/LitestarAPI" +Repository = "https://github.com/litestar-org/{{ project_name }}" +Twitter = "https://twitter.com/LitestarAPI" -[build-system] -build-backend = "hatchling.build" -requires = ["hatchling"] +[project.optional-dependencies] -[tool.pdm.scripts] -lint = "pre-commit run --all-files" -test = "pytest" -docs-serve = "sphinx-autobuild docs docs/_build/ -j auto --watch {{module_name}} --watch docs --watch tests --port 8002" -ci = {composite = ["lint", "test"]} +[project.scripts] + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.sdist] +include = [ + 'docs/PYPI_README.md', + '/Makefile', + '/{{ module_name }}', + '/tests', + '/CHANGELOG.rst', +] + +[tool.pdm] +ignore_package_warnings = ["sphinx", "slotscheck"] [tool.pdm.dev-dependencies] +dev = [] docs = [ - "sphinx>=7.1.2", - "sphinx-autobuild>=2021.3.14", - "sphinx-copybutton>=0.5.2", - "shibuya>=2023.9.3", - "sphinx-click>=5.0.1", - "sphinx-toolbox>=3.5.0", - "blacken-docs>=1.16.0", - "sphinx-design>=0.5.0", + "sphinx>=7.1.2", + "sphinx-autobuild>=2021.3.14", + "sphinx-copybutton>=0.5.2", + "sphinx-toolbox>=3.5.0", + "sphinx-design>=0.5.0", + "sphinx-click>=4.4.0", + "sphinxcontrib-mermaid>=0.9.2", + "auto-pytabs[sphinx]>=0.4.0", + "litestar-sphinx-theme @ git+https://github.com/litestar-org/litestar-sphinx-theme.git", + "sphinx-paramlinks>=0.6.0", ] -lint = [ - "black>=23.9.1", - "ruff>=0.0.289", - "codespell>=2.2.5", - "mypy>=1.5.1", - "pre-commit>=3.4.0", - "blacken-docs>=1.16.0", - "shellcheck-py>=0.9.0.5", - "pyright>=1.1.327", - "sourcery>=1.9.0", +linting = [ + "ruff>=0.2.1", + "mypy", + "pre-commit", + "slotscheck", + "codecov-cli", + "pyright==1.1.344", ] test = [ - "pytest>=7.4.2", - "pytest-asyncio>=0.21.1", - "pytest-cov>=4.1.0", + "anyio", + "covdefaults", + "pytest", + "pytest-cov", + "pytest-mock", ] -[tool.black] -line-length = 120 -include = '\.pyi?$' +[tool.pdm.scripts] +ci = {composite = ["lint", "test"]} +docs-serve = "sphinx-autobuild docs docs/_build/ -j auto --watch {{ module_name }} --watch docs --watch tests --port 8002" +lint = "pre-commit run --all-files" +test = "pytest" + +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling"] [tool.codespell] skip = 'pdm.lock' [tool.coverage.run] omit = ["*/tests/*"] +plugins = ["covdefaults"] +source = ["{{ module_name }}"] [tool.coverage.report] -exclude_lines = [ - 'pragma: no cover', - 'if TYPE_CHECKING:', - 'raise NotImplementedError', -] +fail_under = 100 [tool.pytest.ini_options] -# addopts = "--ignore=examples" -asyncio_mode = "auto" - -[tool.pyright] -include = ["{{module_name}}"] -exclude = ["tools"] - -[tool.slotscheck] -strict-imports = false +addopts = "--strict-markers --strict-config" +testpaths = ["tests"] +xfail_strict = true [tool.mypy] -warn_unused_ignores = true -warn_redundant_casts = true -warn_unused_configs = true -warn_unreachable = true -warn_return_any = true -strict = true -disallow_untyped_decorators = true +packages = ["{{ module_name }}", "tests"] +python_version = "3.8" + disallow_any_generics = true +disallow_untyped_decorators = true +enable_error_code = "ignore-without-code" implicit_reexport = false show_error_codes = true +strict = true +warn_redundant_casts = true +warn_return_any = true +warn_unreachable = true +warn_unused_configs = true +warn_unused_ignores = true + +[tool.pyright] +disableBytesTypePromotions = true +exclude = [ + "tools", + "docs", +] +include = ["{{ module_name }}", "tests"] +pythonVersion = "3.8" +reportUnnecessaryTypeIgnoreComments = true + +[tool.slotscheck] +strict-imports = false [tool.ruff] -select = ["ALL"] -ignore = [ +lint.select = [ + "A", # flake8-builtins + "B", # flake8-bugbear + "BLE", # flake8-blind-except + "C4", # flake8-comprehensions + "C90", # mccabe + "D", # pydocstyle + "DJ", # flake8-django + "DTZ", # flake8-datetimez + "E", # pycodestyle errors + "ERA", # eradicate + "EXE", # flake8-executable + "F", # pyflakes + "G", # flake8-logging-format + "I", # isort + "ICN", # flake8-import-conventions + "ISC", # flake8-implicit-str-concat + "N", # pep8-naming + "PIE", # flake8-pie + "PLC", # pylint - convention + "PLE", # pylint - error + "PLW", # pylint - warning + "PTH", # flake8-use-pathlib + "Q", # flake8-quotes + "RET", # flake8-return + "RUF", # Ruff-specific rules + "S", # flake8-bandit + "SIM", # flake8-simplify + "T10", # flake8-debugger + "T20", # flake8-print + "TCH", # flake8-type-checking + "TID", # flake8-tidy-imports + "UP", # pyupgrade + "W", # pycodestyle - warning + "YTT", # flake8-2020 +] + +line-length = 120 +lint.ignore = [ "A003", # flake8-builtins - class attribute {name} is shadowing a python builtin "B010", # flake8-bugbear - do not call setattr with a constant attribute value "D100", # pydocstyle - missing docstring in public module @@ -145,28 +217,30 @@ ignore = [ "D202", # pydocstyle - no blank lines allowed after function docstring "D205", # pydocstyle - 1 blank line required between summary line and description "D415", # pydocstyle - first line should end with a period, question mark, or exclamation point - "E501", # pycodestyle line too long, handled by black - "PLW2901" # pylint - for loop variable overwritten by assignment target + "E501", # pycodestyle line too long, handled by ruff format + "PLW2901", # pylint - for loop variable overwritten by assignment target + "RUF012", # Ruff-specific rule - annotated with classvar + "ISC001", # Ruff formatter incompatible ] -line-length = 120 -src = ["{{module_name}}", "tests", "docs/examples"] +src = ["{{ module_name }}", "tests", "docs/examples"] target-version = "py38" -[tool.ruff.pydocstyle] +[tool.ruff.lint.pydocstyle] convention = "google" -[tool.ruff.mccabe] +[tool.ruff.lint.mccabe] max-complexity = 12 -[tool.ruff.pep8-naming] +[tool.ruff.lint.pep8-naming] classmethod-decorators = [ "classmethod", ] -[tool.ruff.isort] -known-first-party = ["{{module_name}}", "tests", "examples"] +[tool.ruff.lint.isort] +known-first-party = ["{{ module_name }}", "tests"] -[tool.ruff.per-file-ignores] +[tool.ruff.lint.per-file-ignores] +"docs/**/*.*" = ["S", "B", "DTZ", "A", "TCH", "ERA", "D", "RET"] "tests/**/*.*" = [ "A", "ARG", @@ -191,29 +265,9 @@ known-first-party = ["{{module_name}}", "tests", "examples"] "TCH", "TRY", ] -"docs/examples/tests/**/*.*" = [ - "A", - "ARG", - "B", - "BLE", - "C901", - "D", - "DTZ", - "EM", - "FBT", - "G", - "N", - "PGH", - "PIE", - "PLR", - "PLW", - "PTH", - "RSE", - "S", - "S101", - "SIM", - "TCH", - "TRY", -] -"docs/**/*.*" = ["S", "B", "DTZ", "A", "TCH", "ERA", "D", "RET", "INP", "ARG", "TD", "FIX"] -"tools/**/*.*" = ["D", "ARG", "EM", "TRY", "G", "FBT", "ANN"] +"tools/**/*.*" = ["D", "ARG", "EM", "TRY", "G", "FBT"] +"tools/prepare_release.py" = ["S603", "S607"] + +[tool.ruff.format] +docstring-code-format = true +docstring-code-line-length = 88 diff --git a/sonar-project.properties.jinja b/sonar-project.properties.jinja index a317de5..421ee19 100644 --- a/sonar-project.properties.jinja +++ b/sonar-project.properties.jinja @@ -1,7 +1,6 @@ -sonar.projectKey=jolt-org_{{project_name}} -sonar.organization=jolt_org -sonar.python.coverage.reportPaths=coverage.xml -sonar.test.inclusions=tests/test_*.py -sonar.sources={{project_name}} -sonar.sourceEncoding=UTF-8 +sonar.organization=litestar-api +sonar.projectKey=litestar-org_{{project_name}} sonar.python.version=3.8, 3.9, 3.10, 3.11 +sonar.sourceEncoding=UTF-8 +sonar.sources={{project_name}} +sonar.tests=tests diff --git a/tools/prepare_release.py b/tools/prepare_release.py new file mode 100644 index 0000000..e081825 --- /dev/null +++ b/tools/prepare_release.py @@ -0,0 +1,444 @@ +from __future__ import annotations + +import asyncio +import contextlib +import datetime +import os +import pathlib +import re +import shutil +import subprocess +from collections import defaultdict +from dataclasses import dataclass +from typing import Generator + +import click +import httpx +import msgspec + +_polar = "[Polar.sh](https://polar.sh/litestar-org)" +_open_collective = "[OpenCollective](https://opencollective.com/litestar)" +_github_sponsors = "[GitHub Sponsors](https://github.com/sponsors/litestar-org/)" + + +class PullRequest(msgspec.Struct): + title: str + number: int + body: str + created_at: str + user: RepoUser + merge_commit_sha: str | None = None + + +class Comp(msgspec.Struct): + sha: str + + class _Commit(msgspec.Struct): + message: str + url: str + + commit: _Commit + + +class RepoUser(msgspec.Struct): + login: str + id: int + type: str + + +@dataclass +class PRInfo: + url: str + title: str + clean_title: str + cc_type: str + number: int + closes: list[int] + created_at: datetime.datetime + description: str + user: RepoUser + + +@dataclass +class ReleaseInfo: + base: str + release_tag: str + version: str + pull_requests: dict[str, list[PRInfo]] + first_time_prs: list[PRInfo] + + @property + def compare_url(self) -> str: + return f"https://github.com/litestar-org/litestar/compare/{self.base}...{self.release_tag}" + + +def _pr_number_from_commit(comp: Comp) -> int: + # this is an ugly hack, but it appears to actually be the most reliably way to + # extract the most "reliable" way to extract the info we want from GH ¯\_(ツ)_/¯ + message_head = comp.commit.message.split("\n\n")[0] + match = re.search(r"\(#(\d+)\)$", message_head) + if not match: + raise ValueError(f"Could not find PR number for commit {message_head!r}") + return int(match[1]) + + +class _Thing: + def __init__(self, *, gh_token: str, base: str, release_branch: str, tag: str, version: str) -> None: + self._gh_token = gh_token + self._base = base + self._new_release_tag = tag + self._release_branch = release_branch + self._new_release_version = version + self._base_client = httpx.AsyncClient( + headers={ + "Authorization": f"Bearer {gh_token}", + } + ) + self._api_client = httpx.AsyncClient( + headers={ + **self._base_client.headers, + "X-GitHub-Api-Version": "2022-11-28", + "Accept": "application/vnd.github+json", + }, + base_url="https://api.github.com/repos/litestar-org/litestar/", + ) + + async def get_closing_issues_references(self, pr_number: int) -> list[int]: + graphql_query = """{ + repository(owner: "litestar-org", name: "litestar") { + pullRequest(number: %d) { + id + closingIssuesReferences (first: 10) { + edges { + node { + number + } + } + } + } + } + }""" + query = graphql_query % (pr_number,) + res = await self._base_client.post("https://api.github.com/graphql", json={"query": query}) + res.raise_for_status() + data = res.json() + return [ + edge["node"]["number"] + for edge in data["data"]["repository"]["pullRequest"]["closingIssuesReferences"]["edges"] + ] + + async def _get_pr_info_for_pr(self, number: int) -> PRInfo: + res = await self._api_client.get(f"/pulls/{number}") + res.raise_for_status() + pr = msgspec.convert(res.json(), type=PullRequest) + + cc_prefix, clean_title = pr.title.split(":", maxsplit=1) + cc_type = cc_prefix.split("(", maxsplit=1)[0].lower() + closes_issues = await self.get_closing_issues_references(pr_number=pr.number) + + return PRInfo( + number=pr.number, + cc_type=cc_type, + clean_title=clean_title.strip(), + url=f"https://github.com/litestar-org/litestar/pull/{pr.number}", + closes=closes_issues, + title=pr.title, + created_at=datetime.datetime.strptime(pr.created_at, "%Y-%m-%dT%H:%M:%S%z"), + description=pr.body, + user=pr.user, + ) + + async def get_prs(self) -> dict[str, list[PRInfo]]: + res = await self._api_client.get(f"/compare/{self._base}...{self._release_branch}") + res.raise_for_status() + compares = msgspec.convert(res.json()["commits"], list[Comp]) + pr_numbers = [_pr_number_from_commit(c) for c in compares] + pulls = await asyncio.gather(*map(self._get_pr_info_for_pr, pr_numbers)) + + prs = defaultdict(list) + for pr in pulls: + if pr.user.type != "Bot": + prs[pr.cc_type].append(pr) + return prs + + async def _get_first_time_contributions(self, prs: dict[str, list[PRInfo]]) -> list[PRInfo]: + # there's probably a way to peel this information out of the GraphQL API but + # this was easier to implement, and it works well enough ¯\_(ツ)_/¯ + # the logic is: if we don't find a commit to the main branch, dated before the + # first commit within this release, it's the user's first contribution + prs_by_user_login: dict[str, list[PRInfo]] = defaultdict(list) + for pr in [p for type_prs in prs.values() for p in type_prs]: + prs_by_user_login[pr.user.login].append(pr) + + first_prs: list[PRInfo] = [] + + async def is_user_first_commit(user_login: str) -> None: + first_pr = sorted(prs_by_user_login[user_login], key=lambda p: p.created_at)[0] + res = await self._api_client.get( + "/commits", + params={ + "author": user_login, + "sha": "main", + "until": first_pr.created_at.isoformat(), + "per_page": 1, + }, + ) + res.raise_for_status() + + if len(res.json()) == 0: + first_prs.append(first_pr) + + await asyncio.gather(*map(is_user_first_commit, prs_by_user_login.keys())) + + return first_prs + + async def get_release_info(self) -> ReleaseInfo: + prs = await self.get_prs() + first_time_contributors = await self._get_first_time_contributions(prs) + return ReleaseInfo( + pull_requests=prs, + first_time_prs=first_time_contributors, + base=self._base, + release_tag=self._new_release_tag, + version=self._new_release_version, + ) + + async def create_draft_release(self, body: str) -> str: + res = await self._api_client.post( + "/releases", + json={ + "tag_name": self._new_release_tag, + "target_commitish": "main", + "name": self._new_release_tag, + "draft": True, + "body": body, + }, + ) + res.raise_for_status() + return res.json()["html_url"] # type: ignore[no-any-return] + + +class GHReleaseWriter: + def __init__(self) -> None: + self.text = "" + + def add_line(self, line: str) -> None: + self.text += line + "\n" + + def add_pr_descriptions(self, infos: list[PRInfo]) -> None: + for info in infos: + self.add_line(f"* {info.title} by @{info.user.login} in {info.url}") + + +class ChangelogEntryWriter: + def __init__(self) -> None: + self.text = "" + self._level = 0 + self._indent = " " + self._cc_type_map = {"fix": "bugfix", "feat": "feature"} + + def add_line(self, line: str) -> None: + self.text += (self._indent * self._level) + line + "\n" + + def add_change(self, pr: PRInfo) -> None: + with self.directive( + "change", + arg=pr.clean_title, + type=self._cc_type_map.get(pr.cc_type, "misc"), + pr=str(pr.number), + issue=", ".join(map(str, pr.closes)), + ): + self.add_line("") + for line in pr.description.splitlines(): + self.add_line(line) + + @contextlib.contextmanager + def directive(self, name: str, arg: str | None = None, **options: str) -> Generator[None, None, None]: + self.add_line(f".. {name}:: {arg or ''}") + self._level += 1 + for key, value in options.items(): + if value: + self.add_line(f":{key}: {value}") + yield + self._level -= 1 + self.add_line("") + + +def build_gh_release_notes(release_info: ReleaseInfo) -> str: + # this is for the most part just recreating GitHub's autogenerated release notes + # but with three important differences: + # 1. PRs are sorted into categories + # 2. The conventional commit type is stripped from the title + # 3. It works with our release branch process. GitHub doesn't pick up (all) commits + # made there depending on how things were merged + doc = GHReleaseWriter() + + doc.add_line("## Sponsors 🌟") + doc.add_line( + "⚠️ Maintainers: Please adjust business/individual sponsors section here as defined by our tier rewards" + ) + doc.add_line(f"- A huge 'Thank you!' to all sponsors across {_polar}, {_open_collective} and {_github_sponsors}!") + + doc.add_line("## What's changed") + if release_info.first_time_prs: + doc.add_line("\n## New contributors 🎉") + for pr in release_info.first_time_prs: + doc.add_line(f"* @{pr.user.login} made their first contribution in {pr.url}") + if fixes := release_info.pull_requests.get("fix"): + doc.add_line("\n### Bugfixes 🐛") + doc.add_pr_descriptions(fixes) + if features := release_info.pull_requests.get("feat"): + doc.add_line("\nNew features 🚀") + doc.add_pr_descriptions(features) + + ignore_sections = {"fix", "feat", "ci", "chore"} + + if other := [pr for k, prs in release_info.pull_requests.items() if k not in ignore_sections for pr in prs]: + doc.add_line("\n<!-- Review these: Not all of them should go into the release notes -->") + doc.add_line("### Other changes") + doc.add_pr_descriptions(other) + + doc.add_line("\n**Full Changelog**") + doc.add_line(release_info.compare_url) + + return doc.text + + +def build_changelog_entry(release_info: ReleaseInfo, interactive: bool = False) -> str: + doc = ChangelogEntryWriter() + with doc.directive("changelog", release_info.version): + doc.add_line(f":date: {datetime.datetime.now(tz=datetime.timezone.utc).date().isoformat()}") + doc.add_line("") + change_types = {"fix", "feat"} + for prs in release_info.pull_requests.values(): + for pr in prs: + cc_type = pr.cc_type + if cc_type in change_types or (interactive and click.confirm(f"Ignore PR #{pr.number} {pr.title!r}?")): + doc.add_change(pr) + else: + click.secho(f"Ignoring change with type {cc_type}", fg="yellow") + + return doc.text + + +def _get_gh_token() -> str: + if gh_token := os.getenv("GH_TOKEN"): + click.secho("Using GitHub token from env", fg="blue") + return gh_token + + gh_executable = shutil.which("gh") + if not gh_executable: + click.secho("GitHub CLI not installed", fg="yellow") + else: + click.secho("Using GitHub CLI to obtain GitHub token", fg="blue") + proc = subprocess.run([gh_executable, "auth", "token"], check=True, capture_output=True, text=True) + if out := (proc.stdout or "").strip(): + return out + + click.secho("Could not find any GitHub token", fg="red") + quit(1) + + +def _get_latest_tag() -> str: + click.secho("Using latest tag", fg="blue") + return subprocess.run( + "git tag --sort=taggerdate | tail -1", + check=True, + capture_output=True, + text=True, + shell=True, # noqa: S602 + ).stdout.strip() + + +def _write_changelog_entry(changelog_entry: str) -> None: + changelog_path = pathlib.Path("docs/release-notes/changelog.rst") + changelog_lines = changelog_path.read_text().splitlines() + line_no = next( + (i for i, line in enumerate(changelog_lines) if line.startswith(".. changelog::")), + None, + ) + if not line_no: + raise ValueError("Changelog start not found") + + changelog_lines[line_no:line_no] = changelog_entry.splitlines() + changelog_path.write_text("\n".join(changelog_lines)) + + +def update_pyproject_version(new_version: str) -> None: + # can't use tomli-w / tomllib for this as is messes up the formatting + pyproject = pathlib.Path("pyproject.toml") + content = pyproject.read_text() + content = re.sub(r'(\nversion ?= ?")\d\.\d\.\d("\s*\n)', rf"\g<1>{new_version}\g<2>", content) + pyproject.write_text(content) + + +@click.command() +@click.argument("version") +@click.option("--base", help="Previous release tag. Defaults to the latest tag") +@click.option("--branch", help="Release branch", default="main") +@click.option( + "--gh-token", + help="GitHub token. If not provided, read from the GH_TOKEN env variable. " + "Alternatively, if the GitHub CLI is installed, it will be used to fetch a token", +) +@click.option( + "-i", + "--interactive", + is_flag=True, + help="Interactively decide which commits should be included in the release notes", +) +@click.option("-c", "--create-draft-release", is_flag=True, help="Create draft release on GitHub") +@click.option( + "-u", + "--update-version", + is_flag=True, + help="Update the version number in pyproject.toml", +) +def cli( + base: str | None, + branch: str, + version: str, + gh_token: str | None, + interactive: bool, + create_draft_release: bool, + update_version: bool, +) -> None: + if gh_token is None: + gh_token = _get_gh_token() + if base is None: + base = _get_latest_tag() + + if not re.match(r"\d\.\d\.\d", version): + click.secho(f"Invalid version: {version!r}") + quit(1) + + new_tag = f"v{version}" + + if update_version: + click.secho("Updating version in pyproject.toml", fg="green") + update_pyproject_version(version) + + click.secho(f"Creating release notes for tag {new_tag}, using {base} as a base", fg="cyan") + + thing = _Thing(gh_token=gh_token, base=base, release_branch=branch, tag=new_tag, version=version) + loop = asyncio.new_event_loop() + + release_info = loop.run_until_complete(thing.get_release_info()) + gh_release_notes = build_gh_release_notes(release_info) + changelog_entry = build_changelog_entry(release_info, interactive=interactive) + + click.secho("Writing changelog entry", fg="green") + _write_changelog_entry(changelog_entry) + + if create_draft_release: + click.secho("Creating draft release", fg="blue") + release_url = loop.run_until_complete(thing.create_draft_release(body=gh_release_notes)) + click.echo(f"Draft release available at: {release_url}") + else: + click.echo(gh_release_notes) + + loop.close() + + +if __name__ == "__main__": + cli() diff --git a/tools/pypi_readme.py b/tools/pypi_readme.py index 3d55c76..d0a7a44 100644 --- a/tools/pypi_readme.py +++ b/tools/pypi_readme.py @@ -1,7 +1,7 @@ import re from pathlib import Path -PYPI_BANNER = '<img src="https://raw.githubusercontent.com/jolt-org/branding/473f54621e55cde9acbb6fcab7fc03036173eb3d/assets/Branding%20-%20PNG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.png" alt="Litestar Logo - Light" width="100%" height="auto" />' +PYPI_BANNER = '<img src="https://raw.githubusercontent.com/litestar-org/branding/473f54621e55cde9acbb6fcab7fc03036173eb3d/assets/Branding%20-%20PNG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.png" alt="Litestar Logo - Light" width="100%" height="auto" />' def generate_pypi_readme() -> None: diff --git a/tools/sphinx_ext/changelog.py.jinja b/tools/sphinx_ext/changelog.py.jinja index 1bfd920..8fbf6e1 100644 --- a/tools/sphinx_ext/changelog.py.jinja +++ b/tools/sphinx_ext/changelog.py.jinja @@ -11,7 +11,7 @@ from sphinx.util.docutils import SphinxDirective if TYPE_CHECKING: from sphinx.application import Sphinx -_GH_BASE_URL = "https://github.com/jolt-org/{{project_name}}" +_GH_BASE_URL = "https://github.com/litestar-org/{{project_name}}" def _parse_gh_reference(raw: str, type_: Literal["issues", "pull"]) -> list[str]: diff --git a/{% if true %}.github{% endif %}/CODEOWNERS b/{% if true %}.github{% endif %}/CODEOWNERS index c13d1f3..6c97be0 100644 --- a/{% if true %}.github{% endif %}/CODEOWNERS +++ b/{% if true %}.github{% endif %}/CODEOWNERS @@ -1,7 +1,10 @@ -# Code owner settings for `jolt-org` +# Code owner settings for `litestar` # @maintainers should be assigned to all reviews. # Most specific assignment takes precedence though, so if you add a more specific thing than the `*` glob, you must also add @maintainers # For more info about code owners see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-example # Global Assignment -* @jolt-org/maintainers @jolt-org/members +* @litestar-org/maintainers @litestar-org/members + +# Documentation +docs/* @litestar-org/maintainers @JacobCoffee @provinzkraut diff --git a/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/BUG.yml b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/BUG.yml new file mode 100644 index 0000000..f3e506f --- /dev/null +++ b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/BUG.yml @@ -0,0 +1,84 @@ +name: "Bug Report" +description: Create an issue for a bug. +title: "Bug: <title>" +labels: ["Bug :bug:", "Triage Required"] +projects: ["litestar-org/16"] +body: + - type: textarea + id: description + attributes: + label: "Description" + description: Please enter an description of the bug you are encountering + placeholder: + validations: + required: true + - type: input + id: reprod-url + attributes: + label: "URL to code causing the issue" + description: Please enter the URL to provide a reproduction of the issue, if applicable + placeholder: ex. https://github.com/USERNAME/REPO-NAME + validations: + required: false + - type: textarea + id: mcve + attributes: + label: "MCVE" + description: "Please provide a minimal, complete, and verifiable example of the issue." + value: | + ```py + # Your MCVE code here + ``` + render: python + validations: + required: false + - type: textarea + id: reprod + attributes: + label: "Steps to reproduce" + description: Please enter the exact steps to reproduce the issue + value: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + render: bash + validations: + required: false + - type: textarea + id: screenshot + attributes: + label: "Screenshots" + description: If applicable, add screenshots to help explain your problem. + value: | + "![SCREENSHOT_DESCRIPTION](SCREENSHOT_LINK.png)" + render: bash + validations: + required: false + - type: textarea + id: logs + attributes: + label: "Logs" + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: bash + validations: + required: false + - type: textarea + id: version + attributes: + label: "Litestar Version" + description: What version of Litestar are you using when encountering this issue? + validations: + required: true + - type: checkboxes + id: platform + attributes: + label: "Platform" + description: What platform are you encountering the issue on? + options: + - label: "Linux" + - label: "Mac" + - label: "Windows" + - label: "Other (Please specify in the description above)" + validations: + required: false diff --git a/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/DOCS.yml b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/DOCS.yml new file mode 100644 index 0000000..3fb964c --- /dev/null +++ b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/DOCS.yml @@ -0,0 +1,14 @@ +name: "Documentation Update" +description: Create an issue for documentation changes +title: "Docs: <title>" +labels: ["Documentation :books:"] +projects: ["litestar-org/16"] +body: + - type: textarea + id: summary + attributes: + label: "Summary" + description: Provide a brief summary of your feature request + placeholder: Describe in a few lines your feature request + validations: + required: true diff --git a/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/REQUEST.yml b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/REQUEST.yml new file mode 100644 index 0000000..be91016 --- /dev/null +++ b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/REQUEST.yml @@ -0,0 +1,38 @@ +name: "Feature Request" +description: Create an issue for a new feature request +title: "Enhancement: <title>" +labels: ["Enhancement"] +projects: ["litestar-org/16"] +body: + - type: textarea + id: summary + attributes: + label: "Summary" + description: Provide a brief summary of your feature request + placeholder: Describe in a few lines your feature request + validations: + required: true + - type: textarea + id: basic_example + attributes: + label: "Basic Example" + description: Indicate here some basic examples of your feature. + placeholder: Provide some basic example of your feature request + validations: + required: false + - type: textarea + id: drawbacks + attributes: + label: "Drawbacks and Impact" + description: What are the drawbacks or impacts of your feature request? + placeholder: Describe any the drawbacks or impacts of your feature request + validations: + required: false + - type: textarea + id: unresolved_question + attributes: + label: "Unresolved questions" + description: What, if any, unresolved questions do you have about your feature request? + placeholder: Identify any unresolved issues. + validations: + required: false diff --git a/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/config.yml b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..cf06aee --- /dev/null +++ b/{% if true %}.github{% endif %}/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_lines_enabled: true +contact_links: + - name: Litestar Documentation + url: https://docs.litestar.dev/ + about: Official Litestar documentation - please check here before opening an issue. + - name: Litestar Website + url: https://litestar.dev/ + about: Main Litestar website - for details about Litestar's projects. + - name: Discord + url: https://discord.gg/litestar + about: Join our Discord community to chat or get in touch with the maintainers. diff --git a/{% if true %}.github{% endif %}/PULL_REQUEST_TEMPLATE.md b/{% if true %}.github{% endif %}/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..f9bc02a --- /dev/null +++ b/{% if true %}.github{% endif %}/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,18 @@ +<!-- +By submitting this pull request, you agree to: +- follow [Litestar's Code of Conduct](https://github.com/litestar-org/.github/blob/main/CODE_OF_CONDUCT.md) +- follow [Litestar's contribution guidelines](https://github.com/litestar-org/.github/blob/main/CONTRIBUTING.md) +- follow the [PSFs's Code of Conduct](https://www.python.org/psf/conduct/) +--> +## Description + +- + +<!-- +Please add in issue numbers this pull request will close, if applicable +Examples: Fixes #4321 or Closes #1234 + +Ensure you are using a supported keyword to properly link an issue: +https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword +--> +## Closes diff --git a/{% if true %}.github{% endif %}/dependabot.yml b/{% if true %}.github{% endif %}/dependabot.yml new file mode 100644 index 0000000..1230149 --- /dev/null +++ b/{% if true %}.github{% endif %}/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/{% if true %}.github{% endif %}/labeler.yml b/{% if true %}.github{% endif %}/labeler.yml new file mode 100644 index 0000000..92666fc --- /dev/null +++ b/{% if true %}.github{% endif %}/labeler.yml @@ -0,0 +1,306 @@ +version: v1 + +labels: + # -- types ------------------------------------------------------------------- + - label: 'type/feat' + sync: true + matcher: + title: '^feat(\([^)]+\))?!?:' + + - label: 'type/bug' + sync: true + matcher: + title: '^fix(\([^)]+\))?!?:' + + - label: 'type/docs' + sync: true + matcher: + title: '^docs(\([^)]+\))?:' + + - label: 'Breaking 🔨' + sync: true + matcher: + title: '^(feat|fix)(\([^)]+\))?!:' + + # -- distinct areas ---------------------------------------------------------- + - label: '3.x' + sync: true + matcher: + baseBranch: '^v3$' + + - label: 'area/docs' + sync: true + matcher: + files: + any: ['docs/*', 'docs/**/*', '**/*.rst', '**/*.md'] + + - label: 'area/unit-tests' + sync: true + matcher: + files: + any: ['test/unit/*', 'test/unit/**/*'] + + - label: 'area/end-to-end-tests' + sync: true + matcher: + files: + any: ['test/e2e/*', 'test/e2e/**/*'] + + - label: 'area/test-apps' + sync: true + matcher: + files: + any: ['test/test_apps/*', 'test/test_apps/**/*'] + + - label: 'area/docs' + sync: true + matcher: + files: + any: ['docs/*', 'docs/**/*', '**/*.rst', '**/*.md'] + + - label: 'area/unit-tests' + sync: true + matcher: + files: + any: ['test/unit/*', 'test/unit/**/*'] + + - label: 'area/end-to-end-tests' + sync: true + matcher: + files: + any: ['test/e2e/*', 'test/e2e/**/*'] + + - label: 'area/test-apps' + sync: true + matcher: + files: + any: ['test/test_apps/*', 'test/test_apps/**/*'] + + - label: 'area/ci' + sync: true + matcher: + files: + any: ['.github/**/*', 'codecov.yml', 'pre-commit-config.yaml', 'sonar-project.properties'] + + - label: 'area/dependencies' + sync: true + matcher: + files: + any: ['pyproject.toml', '*.lock'] + + - label: 'area/enums' + sync: true + matcher: + files: ['litestar/enums.py'] + + - label: 'area/background-tasks' + sync: true + matcher: + files: ['litestar/background_tasks.py'] + + - label: 'area/constants' + sync: true + matcher: + files: ['litestar/constants.py'] + + - label: 'area/concurrency' + sync: true + matcher: + files: ['litestar/concurrency.py'] + + - label: 'area/parsers' + sync: true + matcher: + files: ['litestar/_parsers.py'] + + - label: 'area/layers' + sync: true + matcher: + files: ['litestar/_layers/*'] + + - label: 'area/multipart' + sync: true + matcher: + files: ['litestar/_multipart.py'] + + - label: 'area/di' + sync: true + matcher: + files: ['litestar/di.py'] + + - label: 'area/file-system' + sync: true + matcher: + files: ['litestar/file_system.py'] + + - label: 'area/controller' + sync: true + matcher: + files: ['litestar/controller.py'] + + - label: 'area/serialization' + sync: true + matcher: + files: ['litestar/serialization/*'] + + - label: 'area/params' + sync: true + matcher: + files: ['litestar/params.py'] + + - label: 'area/template' + sync: true + matcher: + files: ['litestar/template/*'] + + - label: 'area/events' + sync: true + matcher: + files: ['litestar/events/*'] + + - label: 'area/router' + sync: true + matcher: + files: ['litestar/router.py'] + + - label: 'area/exceptions' + sync: true + matcher: + files: ['litestar/exceptions/*'] + + - label: 'area/static-files' + sync: true + matcher: + files: ['litestar/static_files/*'] + + - label: 'area/signature' + sync: true + matcher: + files: ['litestar/_signature/*'] + + - label: 'area/plugins' + sync: true + matcher: + files: ['litestar/plugins/*'] + + - label: 'area/stores' + sync: true + matcher: + files: ['litestar/stores/*'] + + - label: 'area/logging' + sync: true + matcher: + files: ['litestar/logging/*'] + + - label: 'area/connection' + sync: true + matcher: + files: ['litestar/connection/*'] + + - label: 'area/asgi' + sync: true + matcher: + files: ['litestar/_asgi/*'] + + - label: 'area/types' + sync: true + matcher: + files: ['litestar/types/*'] + + - label: 'area/kwargs' + sync: true + matcher: + files: ['litestar/_kwargs/*'] + + - label: 'area/datastructures' + sync: true + matcher: + files: ['litestar/datastructures/*'] + + - label: 'area/channels' + sync: true + matcher: + files: ['litestar/channels/*'] + + - label: 'area/response' + sync: true + matcher: + files: ['litestar/response/*'] + + - label: 'area/repository' + sync: true + matcher: + files: ['litestar/repository/*'] + + - label: 'area/security' + sync: true + matcher: + files: ['litestar/security/*'] + + - label: 'area/dto' + sync: true + matcher: + files: ['litestar/dto/*'] + + - label: 'area/testing' + sync: true + matcher: + files: ['litestar/testing/*'] + + - label: 'area/openapi' + sync: true + matcher: + files: ['litestar/_openapi/*'] + + - label: 'area/middleware' + sync: true + matcher: + files: ['litestar/middleware/*'] + + - label: 'area/handlers' + sync: true + matcher: + files: ['litestar/handlers/*'] + + - label: 'area/contrib' + sync: true + matcher: + files: ['litestar/contrib/*'] + + - label: 'area/private-api' + sync: true + matcher: + files: + any: ['litestar/_*.py', 'litestar/*/_*.py', 'litestar/_*/**/*.py'] + + # -- Size Based Labels ------------------------------------------------------- + - label: 'size: small' + sync: true + matcher: + files: + count: + gte: 1 + lte: 10 + + - label: 'size: medium' + sync: true + matcher: + files: + count: + gte: 10 + lte: 25 + + - label: 'size: large' + sync: true + matcher: + files: + count: + gte: 26 + +# -- Merge Checks -------------------------------------------------------------- +checks: + - context: 'No Merge check' + description: "Disable merging when 'do not merge' label is set" + labels: + none: ['do not merge'] diff --git a/{% if true %}.github{% endif %}/notify_released_issues/get_closed_issues.py b/{% if true %}.github{% endif %}/notify_released_issues/get_closed_issues.py new file mode 100644 index 0000000..d1c3008 --- /dev/null +++ b/{% if true %}.github{% endif %}/notify_released_issues/get_closed_issues.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +import itertools +import json +import pathlib +import re +import sys + +__all__ = ( + "find_resolved_issues", + "main", +) + + +def find_resolved_issues(source: str, tag: str) -> list[str]: + version = tag.split("v", maxsplit=1)[-1] + changelog_line = f".. changelog:: {version}" + stop_line = ".. changelog::" + return list( + { + issue + for line in itertools.takewhile( + lambda l: stop_line not in l, # noqa: E741 + source.split(changelog_line, maxsplit=1)[1].splitlines(), + ) + if re.match(r"\s+:issue: [\d ,]+", line) + for issue in re.findall(r"\d+", line) + } + ) + + +def main(tag: str) -> str: + source = pathlib.Path("docs/release-notes/changelog.rst").read_text() + return json.dumps(find_resolved_issues(source, tag)) + + +if __name__ == "__main__": + print(main(sys.argv[1])) # noqa: T201 diff --git a/{% if true %}.github{% endif %}/notify_released_issues/notify.js b/{% if true %}.github{% endif %}/notify_released_issues/notify.js new file mode 100644 index 0000000..317e22c --- /dev/null +++ b/{% if true %}.github{% endif %}/notify_released_issues/notify.js @@ -0,0 +1,34 @@ +module.exports = async ({github, context, core}) => { + + const issues = JSON.parse(process.env.CLOSED_ISSUES) + const releaseURL = context.payload.release.html_url + const releaseName = context.payload.release.name + const baseBody = "A fix for this issue has been released in" + const body = baseBody + ` [${releaseName}](${releaseURL})` + + for (const issueNumber of issues) { + const opts = github.rest.issues.listComments.endpoint.merge({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + }); + + const comments = await github.paginate(opts) + for (const comment of comments) { + if (comment.user.id === 41898282 && comment.body.startsWith(baseBody)) { + await github.rest.issues.deleteComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: comment.id + }) + } + } + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: body, + }) + } +} diff --git a/{% if true %}.github{% endif %}/workflows/ci.yml b/{% if true %}.github{% endif %}/workflows/ci.yml new file mode 100644 index 0000000..c3fe9a7 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/ci.yml @@ -0,0 +1,354 @@ +name: Tests And Linting + +on: + pull_request: + merge_group: + push: + branches: + - main + - v1.51 + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.8" + + - name: Install Pre-Commit + run: python -m pip install pre-commit + + - name: Load cached Pre-Commit Dependencies + id: cached-pre-commit-dependencies + uses: actions/cache@v4 + with: + path: ~/.cache/pre-commit/ + key: pre-commit-4|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }} + + - name: Execute Pre-Commit + run: pre-commit run --show-diff-on-failure --color=always --all-files + + mypy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.8" + allow-prereleases: true + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.8" + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: pdm install -G:all + + - name: Run mypy + run: pdm run mypy + + pyright: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.8" + allow-prereleases: true + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.8" + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: pdm install -G:all + + - name: Run pyright + run: pdm run pyright + + slotscheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.8" + allow-prereleases: false + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.8" + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: pdm install -G:all + + - name: Run slotscheck + run: pdm run slotscheck litestar + + test: + name: "test (${{ matrix.python-version }})" + strategy: + fail-fast: true + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + uses: ./.github/workflows/test.yml + with: + coverage: ${{ (matrix.python-version == '3.12' || matrix.python-version == '3.8') }} + python-version: ${{ matrix.python-version }} + + test_integration: + name: Test server integration + runs-on: ubuntu-latest + strategy: + matrix: + uvicorn-version: ["uvicorn<0.27.0", "uvicorn>=0.27.0"] + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up python 3.11 + uses: actions/setup-python@v5 + with: + python-version: 3.11 + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: 3.11 + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: | + pdm install -G:all + pip install -U "${{ matrix.uvicorn-version }}" + + - name: Set PYTHONPATH + run: echo "PYTHONPATH=$PWD" >> $GITHUB_ENV + + - name: Test + run: pdm run pytest tests -m server_integration + + test-platform-compat: + if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'test platform compat') + strategy: + fail-fast: false + matrix: + os: ["macos-latest", "windows-latest"] + uses: ./.github/workflows/test.yml + with: + python-version: "3.12" + os: ${{ matrix.os }} + timeout: 30 + + sonar: + needs: + - test + - validate + if: github.event.pull_request.head.repo.fork == false && github.repository_owner == 'litestar-org' + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: SonarCloud Scan + uses: sonarsource/sonarcloud-github-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + + codeql: + needs: + - test + - validate + runs-on: ubuntu-latest + permissions: + security-events: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Initialize CodeQL Without Dependencies + uses: github/codeql-action/init@v3 + with: + setup-python-dependencies: false + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + + build-docs: + needs: + - validate + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + allow-prereleases: true + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.12" + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: pdm install -G:all + + - name: Build docs + run: pdm run make docs + + - name: Check docs links + env: + LITESTAR_DOCS_IGNORE_MISSING_EXAMPLE_OUTPUT: 1 + run: pdm run make docs-linkcheck + + - name: Save PR number + env: + PR_NUMBER: ${{ github.event.number }} + run: echo $PR_NUMBER > .pr_number + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: docs-preview + path: | + docs/_build/html + .pr_number + + test_minimal_app: + name: Test Minimal Application with Base Dependencies + runs-on: ubuntu-latest + env: + python_version: "3.12" + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.12" + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: pdm install + + - name: Set pythonpath + run: echo "PYTHONPATH=$PWD" >> $GITHUB_ENV + + - name: Test + run: mv tests/examples/test_hello_world.py test_hello_world.py && pdm run pytest test_hello_world.py + + test_pydantic_1_app: + name: Test Minimal Pydantic 1 application + runs-on: ubuntu-latest + env: + python_version: "3.12" + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.12" + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: | + pdm install + pdm run python -m ensurepip + pdm run python -m pip install "pydantic==1.*" + + - name: Set pythonpath + run: echo "PYTHONPATH=$PWD" >> $GITHUB_ENV + + - name: Test + run: pdm run coverage run --branch -m unittest test_apps/pydantic_1_app.py + + - name: Rename coverage file + run: mv .coverage* .coverage.pydantic_v1 + + - uses: actions/upload-artifact@v3 + with: + name: coverage-data + path: .coverage.pydantic_v1 + + upload-test-coverage: + runs-on: ubuntu-latest + needs: + - test + - test_pydantic_1_app + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Download Artifacts + uses: actions/download-artifact@v3 + with: + name: coverage-data + + - name: Combine coverage files + run: | + python -Im pip install coverage covdefaults + python -Im coverage combine + python -Im coverage xml -i + + - name: Fix coverage file name + run: sed -i "s/home\/runner\/work\/litestar\/litestar/github\/workspace/g" coverage.xml + + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4 + with: + files: coverage.xml + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/{% if true %}.github{% endif %}/workflows/codeql.yml b/{% if true %}.github{% endif %}/workflows/codeql.yml new file mode 100644 index 0000000..58cf9d9 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/codeql.yml @@ -0,0 +1,18 @@ +name: CodeQL scheduled +on: + schedule: + - cron: "0 4 * * *" +jobs: + codeql: + runs-on: ubuntu-latest + permissions: + security-events: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: "main" + - name: Initialize CodeQL With Dependencies + uses: github/codeql-action/init@v3 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 diff --git a/{% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja b/{% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja index a4eb066..6a2ca90 100644 --- a/{% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja +++ b/{% if true %}.github{% endif %}/workflows/docs-preview.yaml.jinja @@ -39,7 +39,7 @@ jobs: {% raw %} token: ${{ secrets.DOCS_PREVIEW_DEPLOY_TOKEN }} {% endraw %} - repository-name: jolt-org/{{project_name}}-docs-preview + repository-name: litestar-org/{{project_name}}-docs-preview clean: false {% raw %} target-folder: ${{ env.PR_NUMBER }} @@ -54,7 +54,7 @@ jobs: with: script: | const issue_number = process.env.PR_NUMBER - const body = "Documentation preview will be available shortly at https://jolt-org.github.io/{{project_name}}-docs-preview/" + issue_number + const body = "Documentation preview will be available shortly at https://litestar-org.github.io/{{project_name}}-docs-preview/" + issue_number const opts = github.rest.issues.listComments.endpoint.merge({ owner: context.repo.owner, diff --git a/{% if true %}.github{% endif %}/workflows/docs-preview.yml b/{% if true %}.github{% endif %}/workflows/docs-preview.yml new file mode 100644 index 0000000..c8be703 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/docs-preview.yml @@ -0,0 +1,71 @@ +name: Deploy documentation preview +on: + workflow_run: + workflows: [Tests And Linting] + types: [completed] + +jobs: + deploy: + if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'pull_request' }} + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Download artifact + uses: dawidd6/action-download-artifact@v3 + with: + workflow_conclusion: success + run_id: ${{ github.event.workflow_run.id }} + path: docs-preview + name: docs-preview + + - name: Set PR number + run: echo "PR_NUMBER=$(cat docs-preview/.pr_number)" >> $GITHUB_ENV + + - name: Deploy docs preview + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: docs-preview/docs/_build/html + token: ${{ secrets.DOCS_PREVIEW_DEPLOY_TOKEN }} + repository-name: litestar-org/litestar-docs-preview + clean: false + target-folder: ${{ env.PR_NUMBER }} + branch: gh-pages + + - uses: actions/github-script@v7 + env: + PR_NUMBER: ${{ env.PR_NUMBER }} + with: + script: | + const issue_number = process.env.PR_NUMBER + const body = "Documentation preview will be available shortly at https://litestar-org.github.io/litestar-docs-preview/" + issue_number + + const opts = github.rest.issues.listComments.endpoint.merge({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issue_number, + }); + + const comments = await github.paginate(opts) + + for (const comment of comments) { + if (comment.user.id === 41898282 && comment.body === body) { + await github.rest.issues.deleteComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: comment.id + }) + } + } + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issue_number, + body: body, + }) diff --git a/{% if true %}.github{% endif %}/workflows/docs.yml b/{% if true %}.github{% endif %}/workflows/docs.yml new file mode 100644 index 0000000..c96b5e0 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/docs.yml @@ -0,0 +1,58 @@ +name: Documentation Building + +on: + release: + types: [published] + push: + branches: + - main + - develop + - v3.0 + +jobs: + docs: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.12" + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: pdm sync -G:all + + - name: Fetch gh pages + run: git fetch origin gh-pages --depth=1 + + - name: Build release docs + run: pdm run python tools/build_docs.py docs-build + if: github.event_name == 'release' + + - name: Build docs (main branch) + run: pdm run python tools/build_docs.py docs-build --version main + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + + - name: Build docs (develop branch) + run: pdm run python tools/build_docs.py docs-build --version develop + if: github.event_name == 'push' && github.ref == 'refs/heads/develop' + + - name: Build docs (v3.0 branch) + run: pdm run python tools/build_docs.py docs-build --version 3-dev + if: github.event_name == 'push' && github.ref == 'refs/heads/v3.0' + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: docs-build diff --git a/{% if true %}.github{% endif %}/workflows/notify-released-issues.yml b/{% if true %}.github{% endif %}/workflows/notify-released-issues.yml new file mode 100644 index 0000000..07087c4 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/notify-released-issues.yml @@ -0,0 +1,32 @@ +name: Notify released issues +on: + workflow_call: + inputs: + release_tag: + type: string + required: true + +jobs: + notify: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Get released issues + id: get-released-issues + run: + echo "issues=$(python ./.github/workflows/notify_released_issues/get_closed_issues.py ${{ inputs.release_tag }})" >> "$GITHUB_OUTPUT" + + - uses: actions/github-script@v7 + env: + CLOSED_ISSUES: ${{ steps.get-released-issues.outputs.issues }} + with: + script: | + const script = require('./.github/workflows/notify_released_issues/notify.js') + await script({github, context, core}) diff --git a/{% if true %}.github{% endif %}/workflows/notify_released_issues/get_closed_issues.py b/{% if true %}.github{% endif %}/workflows/notify_released_issues/get_closed_issues.py new file mode 100644 index 0000000..d1c3008 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/notify_released_issues/get_closed_issues.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +import itertools +import json +import pathlib +import re +import sys + +__all__ = ( + "find_resolved_issues", + "main", +) + + +def find_resolved_issues(source: str, tag: str) -> list[str]: + version = tag.split("v", maxsplit=1)[-1] + changelog_line = f".. changelog:: {version}" + stop_line = ".. changelog::" + return list( + { + issue + for line in itertools.takewhile( + lambda l: stop_line not in l, # noqa: E741 + source.split(changelog_line, maxsplit=1)[1].splitlines(), + ) + if re.match(r"\s+:issue: [\d ,]+", line) + for issue in re.findall(r"\d+", line) + } + ) + + +def main(tag: str) -> str: + source = pathlib.Path("docs/release-notes/changelog.rst").read_text() + return json.dumps(find_resolved_issues(source, tag)) + + +if __name__ == "__main__": + print(main(sys.argv[1])) # noqa: T201 diff --git a/{% if true %}.github{% endif %}/workflows/notify_released_issues/notify.js b/{% if true %}.github{% endif %}/workflows/notify_released_issues/notify.js new file mode 100644 index 0000000..317e22c --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/notify_released_issues/notify.js @@ -0,0 +1,34 @@ +module.exports = async ({github, context, core}) => { + + const issues = JSON.parse(process.env.CLOSED_ISSUES) + const releaseURL = context.payload.release.html_url + const releaseName = context.payload.release.name + const baseBody = "A fix for this issue has been released in" + const body = baseBody + ` [${releaseName}](${releaseURL})` + + for (const issueNumber of issues) { + const opts = github.rest.issues.listComments.endpoint.merge({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + }); + + const comments = await github.paginate(opts) + for (const comment of comments) { + if (comment.user.id === 41898282 && comment.body.startsWith(baseBody)) { + await github.rest.issues.deleteComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: comment.id + }) + } + } + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: body, + }) + } +} diff --git a/{% if true %}.github{% endif %}/workflows/pr-labeler.yml b/{% if true %}.github{% endif %}/workflows/pr-labeler.yml new file mode 100644 index 0000000..7a01dc5 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/pr-labeler.yml @@ -0,0 +1,50 @@ +name: "Pull Request Labeler" + +on: + pull_request_target: + pull_request: + +jobs: + apply-labels: + permissions: + contents: read + pull-requests: write + checks: write + statuses: write + runs-on: ubuntu-latest + steps: + - uses: fuxingloh/multi-labeler@v4 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + + distinguish-pr-origin: + needs: apply-labels + if: ${{ always() }} + permissions: + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v7 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const maintainers = [ + 'JacobCoffee', 'provinzkraut', 'cofin', + 'peterschutt', 'Alc-Alc', 'guacs', + 'dependabot[bot]', 'all-contributors[bot]' + ] + if (maintainers.includes(context.payload.sender.login)) { + github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ['pr/internal'] + }) + } else { + github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ['pr/external', 'Triage Required :hospital:'] + }) + } diff --git a/{% if true %}.github{% endif %}/workflows/pr-merged.yml b/{% if true %}.github{% endif %}/workflows/pr-merged.yml new file mode 100644 index 0000000..f83fea1 --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/pr-merged.yml @@ -0,0 +1,53 @@ +name: "PR merged" + +on: + pull_request: + types: + - closed + branches: + - develop + - main + +jobs: + close_and_notify: + name: Close issues and notify + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v7 + with: + script: | + const prNumber = context.payload.number + const branch = context.baseRef + const isDevelop = branch === "develop" + const commentBody = `<!--closing-comment-->\nThis issue has been closed in #${prNumber}. The change will be included in the upcoming ${isDevelop ? "minor" : "patch"} release.` + + const query = `query($number: Int!, $owner: String!, $name: String!) { repository(owner: $owner, name: $name) { + pullRequest(number: $number) { + id + closingIssuesReferences (first: 10) { edges { node { number } } } + } + } + }` + const res = await github.graphql(query, {number: prNumber, owner: context.repo.owner, name: context.repo.repo}) + const linkedIssues = res.repository.pullRequest.closingIssuesReferences.edges.map( + edge => edge.node.number + ) + + for (const issueNumber of linkedIssues) { + const res = await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + state: "closed", + state_reason: "completed" + }) + if (res.status === 200) { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: issueNumber, + body: commentBody, + }) + } + } diff --git a/{% if true %}.github{% endif %}/workflows/pr-title.yml b/{% if true %}.github{% endif %}/workflows/pr-title.yml new file mode 100644 index 0000000..f4f5d1c --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/pr-title.yml @@ -0,0 +1,20 @@ +name: "Lint PR Title" + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +permissions: + pull-requests: read + +jobs: + main: + name: Validate PR title + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/{% if true %}.github{% endif %}/workflows/publish.yml b/{% if true %}.github{% endif %}/workflows/publish.yml new file mode 100644 index 0000000..e713deb --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/publish.yml @@ -0,0 +1,41 @@ +name: Latest Release + +on: + release: + types: [published] + workflow_dispatch: + +jobs: + + publish-release: + name: upload release to PyPI + runs-on: ubuntu-latest + permissions: + id-token: write + environment: release + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: "3.12" + cache: true + + - name: Build package + run: pdm build + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + + notify-issues: + needs: publish-release + name: Notify issues + uses: ./.github/workflows/notify-released-issues.yml + with: + release_tag: ${{ github.event.release.tag_name }} diff --git a/{% if true %}.github{% endif %}/workflows/test.yml b/{% if true %}.github{% endif %}/workflows/test.yml new file mode 100644 index 0000000..d770f6a --- /dev/null +++ b/{% if true %}.github{% endif %}/workflows/test.yml @@ -0,0 +1,69 @@ +name: Test + +on: + workflow_call: + inputs: + python-version: + required: true + type: string + coverage: + required: false + type: boolean + default: false + os: + required: false + type: string + default: "ubuntu-latest" + timeout: + required: false + type: number + default: 10 + +jobs: + test: + runs-on: ${{ inputs.os }} + timeout-minutes: ${{ inputs.timeout }} + defaults: + run: + shell: bash + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up python ${{ inputs.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python-version }} + + - uses: pdm-project/setup-pdm@v4 + name: Set up PDM + with: + python-version: ${{ inputs.python-version }} + allow-python-prereleases: false + cache: true + cache-dependency-path: | + ./pdm.lock + + - name: Install dependencies + run: pdm install -G:all + + - name: Set PYTHONPATH + run: echo "PYTHONPATH=$PWD" >> $GITHUB_ENV + + - name: Test + if: ${{ !inputs.coverage }} + run: pdm run pytest docs/examples tests -n auto + + - name: Test with coverage + if: inputs.coverage + run: pdm run pytest docs/examples tests -n auto --cov + + - name: Rename coverage file + if: inputs.coverage + run: mv .coverage .coverage.${{ inputs.python-version }} + + - uses: actions/upload-artifact@v3 + if: inputs.coverage + with: + name: coverage-data + path: .coverage.${{ inputs.python-version }}