pax_global_header 0000666 0000000 0000000 00000000064 14760215775 0014530 g ustar 00root root 0000000 0000000 52 comment=eb4476a2540208f03f364e3f7dca51046f0fde51 joserfc-1.0.4/ 0000775 0000000 0000000 00000000000 14760215775 0013165 5 ustar 00root root 0000000 0000000 joserfc-1.0.4/.devcontainer/ 0000775 0000000 0000000 00000000000 14760215775 0015724 5 ustar 00root root 0000000 0000000 joserfc-1.0.4/.devcontainer/devcontainer.json 0000664 0000000 0000000 00000000503 14760215775 0021276 0 ustar 00root root 0000000 0000000 // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/python { "name": "Python 3", "image": "mcr.microsoft.com/devcontainers/python:1-3.8-bookworm", "postCreateCommand": "pip3 install --user -r requirements.txt" } joserfc-1.0.4/.editorconfig 0000664 0000000 0000000 00000000323 14760215775 0015640 0 ustar 00root root 0000000 0000000 root = true [*] indent_style = space indent_size = 4 insert_final_newline = true trim_trailing_whitespace = true end_of_line = lf charset = utf-8 max_line_length = 120 [*.{yml,yaml,json,toml}] indent_size = 2 joserfc-1.0.4/.github/ 0000775 0000000 0000000 00000000000 14760215775 0014525 5 ustar 00root root 0000000 0000000 joserfc-1.0.4/.github/CODE_OF_CONDUCT.md 0000664 0000000 0000000 00000002617 14760215775 0017332 0 ustar 00root root 0000000 0000000 # Contributor Code of Conduct As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion. Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/) joserfc-1.0.4/.github/FUNDING.yml 0000664 0000000 0000000 00000000040 14760215775 0016334 0 ustar 00root root 0000000 0000000 github: - authlib - lepture joserfc-1.0.4/.github/workflows/ 0000775 0000000 0000000 00000000000 14760215775 0016562 5 ustar 00root root 0000000 0000000 joserfc-1.0.4/.github/workflows/docs.yml 0000664 0000000 0000000 00000002177 14760215775 0020244 0 ustar 00root root 0000000 0000000 name: Publish docs # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow one concurrent deployment concurrency: group: "pages" cancel-in-progress: true on: push: branches: - main paths-ignore: - ".github/*" - "tests/*" jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" - name: install dependencies run: | pip install -r requirements-dev.lock pip install -r requirements-docs.txt - name: sphinx build run: | make build-docs -e lang=en make build-docs -e lang=zh - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: public deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 joserfc-1.0.4/.github/workflows/pypi.yml 0000664 0000000 0000000 00000002441 14760215775 0020267 0 ustar 00root root 0000000 0000000 name: Release to PyPI permissions: contents: write on: push: tags: - "1.*" jobs: build: name: build dist files runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: 3.9 - name: install build run: python -m pip install --upgrade build - name: build dist run: python -m build - uses: actions/upload-artifact@v4 with: name: artifacts path: dist/* if-no-files-found: error publish: environment: name: pypi-release url: https://pypi.org/project/joserfc/ permissions: id-token: write name: release to pypi needs: build runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v4 with: name: artifacts path: dist - name: Push build artifacts to PyPI uses: pypa/gh-action-pypi-publish@release/v1 release: name: write release note runs-on: ubuntu-latest needs: publish steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 20 - run: npx changelogithub --no-group continue-on-error: true env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} joserfc-1.0.4/.github/workflows/test.yml 0000664 0000000 0000000 00000003110 14760215775 0020257 0 ustar 00root root 0000000 0000000 name: Test on: push: branches-ignore: - 'wip-*' paths-ignore: - '.github/**' - 'docs/**' - '*.md' - '*.rst' pull_request: branches-ignore: - 'wip-*' paths-ignore: - '.github/**' - 'docs/**' - '*.md' - '*.rst' jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.8" - name: Install dependencies run: | pip install -r requirements-dev.lock - name: ruff lint run: ruff check - name: mypy lint run: mypy test: needs: lint runs-on: ubuntu-latest strategy: fail-fast: false max-parallel: 3 matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install -r requirements-dev.lock - name: Report coverage run: pytest --cov=joserfc --cov-report=xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./coverage.xml flags: unittests name: GitHub - name: SonarCloud Scan uses: SonarSource/sonarqube-scan-action@v4 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} joserfc-1.0.4/.gitignore 0000664 0000000 0000000 00000001202 14760215775 0015150 0 ustar 00root root 0000000 0000000 # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ pip-wheel-metadata/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .venv/ .coverage .coverage.* .cache coverage.xml *.cover *.py,cover .pytest_cache/ .mypy_cache/ # Sphinx documentation docs/_build/ # pyenv .python-version __pypackages__/ # IDE .idea/ .vscode/ *.mo uv.lock public/en public/zh public/sitemap.xml demo.py joserfc-1.0.4/LICENSE 0000664 0000000 0000000 00000002735 14760215775 0014201 0 ustar 00root root 0000000 0000000 BSD 3-Clause License Copyright (c) 2023, Hsiaoming Yang Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. joserfc-1.0.4/MANIFEST.in 0000664 0000000 0000000 00000000216 14760215775 0014722 0 ustar 00root root 0000000 0000000 include LICENSE include README.rst recursive-include tests * # include documentation sources but not built docs graft docs prune docs/_build joserfc-1.0.4/Makefile 0000664 0000000 0000000 00000000472 14760215775 0014630 0 ustar 00root root 0000000 0000000 lang=en dev-docs: sphinx-build docs public/${lang} -D language=${lang} -b dirhtml -a build-docs: @sphinx-build docs public/${lang} -D language=${lang} -b dirhtml @rm public/${lang}/.buildinfo @rm -r public/${lang}/.doctrees clean-docs: @rm -fr public/${lang} coverage: @pytest --cov --cov-report=html joserfc-1.0.4/README.md 0000664 0000000 0000000 00000005707 14760215775 0014455 0 ustar 00root root 0000000 0000000