diff --git a/.bash/incl/.shebang.txt b/.bash/incl/.shebang.txt new file mode 100755 index 0000000..c35dc8f --- /dev/null +++ b/.bash/incl/.shebang.txt @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== diff --git a/.bash/incl/_aliases.sh b/.bash/incl/_aliases.sh new file mode 100644 index 0000000..37b84db --- /dev/null +++ b/.bash/incl/_aliases.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== + +export LANG="en_US.UTF-8" + +# export CLICOLOR=1 +# export LSCOLORS=ExFxBxDxCxegedabagacad + +# print environment variables sorted by name +# +alias env="env -0 | sort -z | tr '\0' '\n'" + +alias ls='ls -FGlAhp --color=auto' +alias mkdir='mkdir -pv' +alias mv='mv -iv' +alias nano="nano --linenumbers" +alias rm='rm -rf' + +if ! [ -x "$(command -v cd_)" ]; then + + # Silent cd with no list directory + cd_() { builtin cd "$@" || exit; } + + # Always list directory contents upon 'cd' + cd() { + builtin cd "$@" || exit + ls + } +fi diff --git a/.bash/incl/_bash.sh b/.bash/incl/_bash.sh new file mode 100755 index 0000000..ca431c3 --- /dev/null +++ b/.bash/incl/_bash.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +# +# GNU bash, version 5.2.15(1)-release (aarch64-apple-darwin21.6.0) +# +#==================================================== + +_jvcl_::set_homebrew_bash() { + local _bash="${HOMEBREW_PREFIX}/bin/bash" + if ! grep -F -q "${_bash}" "/etc/shells"; then + echo "${HOMEBREW_PREFIX}/bin/bash" | sudo tee -a "/etc/shells" >/dev/null + fi + chsh -s "${_bash}" +} + +if _jvcl_::is_formula_installed bash _jvcl_::set_homebrew_bash && [ $((${BASH_VERSION:0:1})) -ge 5 ]; then + echo "Bash ${BASH_VERSION}" &>/dev/null # NOTE: no version display at this step +fi diff --git a/.bash/incl/_colors.sh b/.bash/incl/_colors.sh new file mode 100644 index 0000000..2708122 --- /dev/null +++ b/.bash/incl/_colors.sh @@ -0,0 +1,81 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +# +# shellcheck disable=SC2034 +# +# black='\E[30;40m' +# red='\E[31;40m' +# green='\E[32;40m' +# yellow='\E[33;40m' +# blue='\E[34;40m' +# magenta='\E[35;40m' +# cyan='\E[36;40m' +# white='\E[37;40m' +# +#==================================================== + +declare -A UCLD_COLORS=( + [_reset]=$'\e[0m' + [blue]=$'\e[1;34m' + [cyan]=$'\e[1;36m' + [green]=$'\e[1;32m' + [magenta]=$'\e[1;35m' + [red]=$'\e[1;31m' + [white]=$'\e[1;37m' + [yellow]=$'\e[1;33m' +) + +_jvcl_::alert() { + local _message=${1:-"Error"} _color=${2:-"magenta"} + + echo -e "${UCLD_COLORS["${_color}"]}${1}${UCLD_COLORS[_reset]} 🛑" + echo +} + +# read + +_jvcl_::ask() { + local _prompt=${1:-"Houston Do You Copy"} _color=${2:-"cyan"} + + read -e -r -p "${UCLD_COLORS["${_color}"]}${_prompt}? [y/N]${UCLD_COLORS["_reset"]} " -n 1 + if [[ "${REPLY}" =~ ^[Yy]$ ]]; then + true + else + false + fi +} + +_jvcl_::ask_2() { + _jvcl_::ask "$1" "green" +} + +# h1, H2, h3... + +_jvcl_::h1() { + local _message _color + + _message=${1:-"Title h1"} + _color=${2:-"magenta"} + + _message="$(echo -e "${UCLD_COLORS["${_color}"]}${_message}${UCLD_COLORS["_reset"]}")" + + cat </dev/null || : + cat /etc/issue 2>/dev/null || : + _jvcl_::set_show_options + python --version || : + + if [[ "${DEBUG}" -gt 1 ]]; then + + if [[ "${DEBUG}" -gt 2 ]]; then + + echo "$( + set -o posix + set | sort + )" + + if [[ "${DEBUG}" -gt 3 ]]; then + # exec 2>>.bash/logfile.log + exec {BASH_XTRACEFD}>>.bash/logfile.log + set -x + fi + + else + + echo + env + echo + + fi + + echo + alias + echo + fi + +} diff --git a/.bash/incl/_homebrew.sh b/.bash/incl/_homebrew.sh new file mode 100755 index 0000000..757ad56 --- /dev/null +++ b/.bash/incl/_homebrew.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== + +# Set PATH, MANPATH, etc., for Homebrew for M1 +case $(arch) in +arm64) # M1 + eval "$(/opt/homebrew/bin/brew shellenv)" + + ;; +i386) # Intel + # Warning: Homebrew's "sbin" was not found in your PATH but you have installed + # formulae that put executables in /usr/local/sbin. + # Consider setting your PATH for example like so: + export PATH="/usr/local/sbin:$PATH" + export HOMEBREW_PREFIX="/usr/local" + ;; +esac + +_jvcl_::brew_install_formula() { + if _jvcl_::is_homebrew_installed; then + _jvcl_::h1 "Checking if ${1} is installed..." + brew ls --versions "${1}" || brew install "${1}" + fi +} + +_jvcl_::is_formula_installed() { + local _formula="${1}" _type + + _type="${_formula}" + + if [[ "${_formula}" == "postgresql@"* ]]; then _type="psql"; fi + if [[ "${_formula}" == "python@"* ]]; then _type="python"; fi + if [[ "${_formula}" == "visual-studio-code"* ]]; then _type="code"; fi + + if type "${_type}" &>/dev/null; then + true + elif _jvcl_::ask "Do you want to install ${_formula}"; then + brew install "${_formula}" + # "${2:-}" # extra func passed as an argument e.g.: _jvcl_::is_formula_installed bash _jvcl_::set_homebrew_bash + if [ -n "${2:-}" ]; then + "${2}" + fi + true + else + false + fi +} + +_jvcl_::is_homebrew_installed() { + if type brew &>/dev/null; then + true + elif _jvcl_::ask "Do you want to install Homebrew"; then + _jvcl_::h3 "Installing Homebrew" + curl -fsSL "https://raw.githubusercontent.com/Homebrew/install/master/install.sh" + true + else + false + fi +} + +_jvcl_::update_mas() { + mas list + mas upgrade +} + +_jvcl_::update_homebrew() { + local _opt + for _opt in "config" "doctor" "update" "upgrade" "autoremove" "cleanup"; do + brew "${_opt}" --verbose || : + done + + # You can dump a Brewfile of your current brew/cask/mas entries into your current directory with + # https://gist.github.com/ChristopherA/a579274536aab36ea9966f301ff14f3f#creating-a-brewfile + brew bundle dump --force --file="${HOME}/Brewfile" + + # Update pip + python3 -m pip install --upgrade pip +} diff --git a/.bash/incl/_poetry_install.sh b/.bash/incl/_poetry_install.sh new file mode 100644 index 0000000..50c99e3 --- /dev/null +++ b/.bash/incl/_poetry_install.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +# +# Helper script for installing poetry on pipeline +# +#==================================================== + +curl -sSL https://install.python-poetry.org | python3 - + +export PATH="/root/.local/bin:${PATH}" diff --git a/.bash/incl/_python.sh b/.bash/incl/_python.sh new file mode 100755 index 0000000..b404fde --- /dev/null +++ b/.bash/incl/_python.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== + +alias python=python3 + +if _jvcl_::is_formula_installed "python@${REPO_PARAM[python]}"; then + export PATH="${HOMEBREW_PREFIX}/opt/python@${REPO_PARAM[python]}/libexec/bin:$PATH" + export PYTHONPATH="${HOMEBREW_PREFIX}/bin/python${REPO_PARAM[python]}" + export PATH="${PYTHONPATH}/bin:$PATH" + export LDFLAGS="-L${PYTHONPATH}/lib" + export PKG_CONFIG_PATH="${PYTHONPATH}/lib/pkgconfig" + # python --version +fi diff --git a/.bash/incl/_set.sh b/.bash/incl/_set.sh new file mode 100644 index 0000000..6ce1348 --- /dev/null +++ b/.bash/incl/_set.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +# +# settings to write safe scripts +# +# +# The Set Builtin allows you to change the values of shell options +# +# +# Shopt builtin allows you to change additional shell optional behavior +# +# +# The Unofficial Bash Strict Mode +# These lines deliberately cause your script to fail. +# Wait, what? Believe me, this is a good thing. +# +# +# Safer bash scripts with 'set -euxo pipefail' +# +# +#==================================================== + +_jvcl_::set_show_options() { + bash --version || : + cat </dev/null; then + python -c "import secrets; result = ''.join(secrets.choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-+') for i in range($_size)); print(result)" + else + openssl rand -base64 "${_size}" + fi +} + +_jvcl_::capture_lines() { + # capturing annoying source ~/virtualenvs/.../bin/activate + read -r -p "" + if [ -n "${REPLY}" ]; then + echo "${REPLY}" + fi + echo "Press any key to continue..." + echo +} diff --git a/.bash/incl/all.sh b/.bash/incl/all.sh new file mode 100644 index 0000000..0b657c6 --- /dev/null +++ b/.bash/incl/all.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== + +# shellcheck disable=SC2034 +declare -A REPO_PARAM +declare -ix DEBUG=0 BASH_STRICT_MODE=0 +declare -x SECRET_KEY + +REPO_PARAM=( + [env]="${HOME}/.env/django-azure-active-directory-signin/.env" + [cache]="./cache" + [postgresql]="14" + [python]="3.11" + [DBNAME]="welcome" + [DBHOST]="localhost" + [DBPORT]="5432" + [DBSSLMODE]="disable" + [DBUSER]="manager" +) + +# shellcheck source=/dev/null +{ + . "${REPO_PARAM[env]}" || : + . "settings.conf" + . ".bash/incl/_set.sh" + . ".bash/incl/_aliases.sh" + . ".bash/incl/_colors.sh" + . ".bash/incl/_utils.sh" + . ".bash/incl/_debug.sh" + . ".bash/incl/_homebrew.sh" + . ".bash/incl/_bash.sh" + . ".bash/incl/_python.sh" + # more files +} + +SECRET_KEY="$(_jvcl_::key_gen 128)" + +_jvcl_::debug diff --git a/.bash/osx/django.sh b/.bash/osx/django.sh new file mode 100755 index 0000000..8c19237 --- /dev/null +++ b/.bash/osx/django.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== + +# shellcheck source=/dev/null +. ".bash/incl/all.sh" + +_jvcl_::dj_create_superuser() { + local _password _user + + _user=${USER:-"superuser"} + _password=$(_jvcl_::key_gen 32) + + if echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('${_user}', '${_user}', '${_password}');" | poetry run python manage.py shell; then + + cat <&1 | tee -a logfile.log +poetry run python manage.py runsslserver 2>&1 | tee -a logfile.log diff --git a/.bash/osx/poetry.sh b/.bash/osx/poetry.sh new file mode 100755 index 0000000..c38df78 --- /dev/null +++ b/.bash/osx/poetry.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== + +# shellcheck source=/dev/null +. ".bash/incl/all.sh" + +# How do I trim leading and trailing whitespace from each line of some output? +# See https://unix.stackexchange.com/a/102229/473393 +_jvcl_::poetry_export_requirements() { + poetry export --without-hashes -f requirements.txt --output requirements.txt + poetry export --with dev --without-hashes -f requirements.txt --output requirements-full.txt + + comm -3 requirements.txt requirements-full.txt | awk '{$1=$1};1' >requirements-dev.txt + rm -rf requirements-full.txt +} + +_jvcl_::poetry_install() { + find . -type f -name "poetry.lock" -print -delete + + poetry env use "${PYTHONPATH}" + poetry check + poetry install + poetry update + poetry show --tree + echo +} + +# Bash equivalent of Python if __name__ == "__main__": +# +if [ "${BASH_SOURCE[0]}" = "${0}" ]; then + if _jvcl_::brew_install_formula "poetry"; then + _jvcl_::poetry_install + _jvcl_::poetry_export_requirements + fi +fi diff --git a/.bash/osx/pypi.sh b/.bash/osx/pypi.sh index 3c4c978..1cf537e 100755 --- a/.bash/osx/pypi.sh +++ b/.bash/osx/pypi.sh @@ -3,66 +3,127 @@ # # author : JV-conseil # credits : JV-conseil -# licence : BSD 3-Clause License # copyright : Copyright (c) 2019-2023 JV-conseil # All rights reserved #==================================================== +# shellcheck source=/dev/null +. ".bash/incl/all.sh" -# shellcheck disable=SC1091 -source ".bash/osx/bash_alias.sh" +_jvcl_::get_pypi_status() { + _jvcl_::h1 "Checking PyPi status..." + cat < requirements-dev.txt +comm -3 requirements.txt requirements-full.txt | awk '{$1=$1};1' >requirements-dev.txt rm -rf requirements-full.txt diff --git a/.bash/settings.conf b/.bash_old/settings.conf similarity index 92% rename from .bash/settings.conf rename to .bash_old/settings.conf index 9c63501..9d26f47 100755 --- a/.bash/settings.conf +++ b/.bash_old/settings.conf @@ -3,12 +3,10 @@ # # author : JV-conseil # credits : JV-conseil -# licence : BSD 3-Clause License # copyright : Copyright (c) 2019-2023 JV-conseil # All rights reserved #==================================================== - # # GLOBALS # @@ -16,7 +14,6 @@ __GH_ORGANIZATION="JV-conseil-Internet-Consulting" __GH_REPOSITORY="django-azure-active-directory-signin" __APP_NAME="azure_signin" - # # GLOBALS # diff --git a/.editorconfig b/.editorconfig index e43144c..937a50d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,8 +14,8 @@ charset = utf-8 [*.py] max_line_length = 88 -# Use 2 spaces for the HTML files -[*.html] +# Use 2 spaces for the HTML, JS files +[*.{html,js}] indent_size = 2 # The JSON files contain newlines inconsistently @@ -23,7 +23,11 @@ indent_size = 2 indent_size = 2 insert_final_newline = ignore -[**/admin/js/vendor/**] +[**/admin/vendor/**] +indent_style = ignore +indent_size = ignore + +[**/vendor/**] indent_style = ignore indent_size = ignore @@ -45,3 +49,10 @@ max_line_length = 79 [*.yml] indent_size = 2 + +# Google Shell Style Guide 2.02 +# https://google.github.io/styleguide/shellguide.html#s5-formatting +[{,.bash*,.env,*.sh}] +indent_style = space +indent_size = 2 +max_line_length = 80 diff --git a/.env/.env b/.env/.env index df59556..069d988 100644 --- a/.env/.env +++ b/.env/.env @@ -2,12 +2,10 @@ # # author : JV-conseil # credits : JV-conseil -# licence : BSD 3-Clause License # copyright : Copyright (c) 2019-2023 JV-conseil # All rights reserved #==================================================== - # # Azure Active directory # diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f9e6144..d5f7b22 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,59 +1,71 @@ --- -name: "\U0001F41E Bug Report" +name: Bug Report \U0001F41E about: Did you find a bug? -title: '' +title: 'Bug Report \U0001F41E {short-description}' labels: bug, triage -assignees: '' +assignees: 'JV-conseil' --- - -- [ ] I am on the [latest](https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin/releases/latest) version. -- [ ] I have searched the [issues](https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin/issues) of this repo and believe that this is not a duplicate. -- [ ] If an exception occurs when executing a command, I executed it again in debug mode (`DEBUF = True` in settings). +- [ ] I have activated the browser Private mode to evaluate if the error still happens. +- [ ] I have turn-off any extension on my browser like adblock that may interfere with the app behaviour. +- [ ] I am on the [latest][latest] version. +- [ ] I have checked that no other similar [issues][issues] are already opened and believe that this is not a duplicate. +- [ ] I have searched the [documentation][documentation] and believe that my question is not covered. +- [ ] If an exception occurs when executing a command, I execute it again in debug mode (`DEBUF = True` in settings). - +--- + +### Describe the bug 🐛 + +> A clear and precise description of what the bug is, please be descriptive! Thanks 🙌 + +### To Reproduce 🔂 + +> Steps to reproduce the behavior: +> +> 1. Go to '...' +> 2. Click on '....' +> 3. Scroll down to '....' +> 4. See error + +### Expected behavior 🚀 + +> A clear and concise description of what you expected to happen. -**Describe the bug** -A clear and precise description of what the bug is, please be descriptive! Thanks again 🙌 +### Configuration ⚙️ -**To Reproduce** -Steps to reproduce the behavior: +> A clear and concise description of your configuration. +> +> Python 3.11.0 +> PostgreSQL Server 14.5 +> Django version 4.1.2 +> ... -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error +### Screenshots 📸 -**Expected behavior** -A clear and concise description of what you expected to happen. +> If applicable, add screenshots to help explain your problem. -**Screenshots** -If applicable, add screenshots to help explain your problem. +### Diagnosis attempts 🩺 -**Desktop (please complete the following information):** +> `curl "https://some.domain.name" --verbose` -- OS: [e.g. iOS] -- Browser [e.g. chrome, safari] -- Version [e.g. 22] +### Additional context 🌍 -**Smartphone (please complete the following information):** +> Add any other context about the problem here. -- Device: [e.g. iPhone6] -- OS: [e.g. iOS8.1] -- Browser [e.g. stock browser, safari] -- Version [e.g. 22] + -**Additional context** -Add any other context about the problem here. +[documentation]: https://pypi.org/project/django-azure-active-directory-signin +[issues]: https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin/issues +[latest]: https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin/releases/latest diff --git a/.github/workflows/disabled/push-actions.yml b/.github/workflows/disabled/push-actions.yml index 1ed4d79..307dbc1 100644 --- a/.github/workflows/disabled/push-actions.yml +++ b/.github/workflows/disabled/push-actions.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [ "3.8", "3.9" ] + python-version: ["3.8", "3.9"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} @@ -16,7 +16,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - . .bash/install_poetry.sh + . .bash/incl/_poetry_install.sh poetry install - name: Format code run: | @@ -34,14 +34,14 @@ jobs: - name: Set up Python 3.8 uses: actions/setup-python@v3 with: - python-version: '3.8' + python-version: "3.8" - name: Configure Git run: | git config --global user.email "github-actions@github.com" git config --global user.name "github-actions" - name: Deploy to PyPi run: | - . .bash/install_poetry.sh + . .bash/incl/_poetry_install.sh poetry publish --build -u ${{ secrets.PYPI_USERNAME}} -p ${{ secrets.PYPI_PASSWORD }} - name: Git tag run: | @@ -58,15 +58,15 @@ jobs: - name: Set up Python 3.8 uses: actions/setup-python@v3 with: - python-version: '3.8' + python-version: "3.8" - name: Configure Git run: | git config --global user.email "github-actions@github.com" git config --global user.name "github-actions" - name: Deploy to PyPi run: | - . .bash/install_poetry.sh + . .bash/incl/_poetry_install.sh poetry version prerelease poetry publish --build -u ${{ secrets.PYPI_USERNAME}} -p ${{ secrets.PYPI_PASSWORD }} git commit -a -m "Prerelease bumped version [skip ci]" - git push \ No newline at end of file + git push diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 832ca73..dd4d799 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -10,5 +10,7 @@ "ms-python.python", "ms-python.isort", "davidanson.vscode-markdownlint", + "foxundermoon.shell-format", + "bierner.markdown-emoji" ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 01172b4..ccfc3ba 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,29 +1,18 @@ { + "editor.bracketPairColorization.enabled": false, + "editor.formatOnSave": true, + "editor.matchBrackets": "always", + "editor.wordWrap": "on", + "files.eol": "\n", "files.exclude": { - "**/core/ntlk_data": true, - "**/dumpdata": true, - "**/node_modules/**": true, "**/*.pyc": { "when": "$(basename).py" }, "**/__pycache__": true, }, - "python.linting.flake8Enabled": true, - "python.linting.enabled": true, - "python.formatting.provider": "black", - "editor.formatOnSave": true, - "python.linting.flake8Args": [ - "--max-line-length=88", - ], - "python.formatting.blackArgs": [ - "--line-length=88" - ], - "editor.wordWrap": "on", "html.format.indentHandlebars": true, "html.format.indentInnerHtml": true, "html.format.templating": true, - "editor.matchBrackets": "always", - "editor.bracketPairColorization.enabled": false, "[css][scss][less]": { "editor.defaultFormatter": "vscode.css-language-features" }, @@ -36,11 +25,39 @@ "[jsonc]": { "editor.defaultFormatter": "vscode.json-language-features" }, - "scss.format.enable": false, + "[markdown]": { + "editor.defaultFormatter": "yzhang.markdown-all-in-one" + }, + "python.formatting.blackArgs": [ + "--line-length=88" + ], + "python.formatting.provider": "black", + "python.linting.enabled": true, + "python.linting.flake8Enabled": true, + "python.linting.flake8Args": [ + "--max-line-length=88", + ], + "python.terminal.activateEnvInCurrentTerminal": true, + "python.terminal.activateEnvironment": false, "scss.format.braceStyle": "collapse", + "scss.format.enable": false, + "shellcheck.logLevel": "trace", + "shellformat.effectLanguages": [ + "shellscript", + "dockerfile", + "dotenv", + "hosts", + "jvmoptions", + "ignore", + "gitignore", + "properties", + "spring-boot-properties", + "azcli", + "bats" + ], + "shellformat.useEditorConfig": true, "task.allowAutomaticTasks": "on", - "files.eol": "\n", "terminal.integrated.defaultProfile.linux": "bash", - "terminal.integrated.defaultProfile.windows": "bash", "terminal.integrated.defaultProfile.osx": "bash", -} + "terminal.integrated.defaultProfile.windows": "bash", +} \ No newline at end of file diff --git a/.vscode/shellscript.code-snippets b/.vscode/shellscript.code-snippets new file mode 100644 index 0000000..bbabee8 --- /dev/null +++ b/.vscode/shellscript.code-snippets @@ -0,0 +1,120 @@ +{ + // Place your snippets for shellscript here. Each snippet is defined under a snippet name and has a prefix, body and + // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the + // same ids are connected. + // Example: + // "Print to console": { + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } + "bash": { + "prefix": [ + // "bash", + // "#!", + "shebang" + ], + "body": [ + "#!/usr/bin/env bash", + "# -*- coding: UTF-8 -*-", + "#", + "# author : JV-conseil", + "# credits : JV-conseil", + "# copyright : Copyright (c) 2019-2023 JV-conseil", + "# All rights reserved", + "#====================================================", + "", + ], + "description": "Shebang Bash executor" + }, + "function": { + "prefix": [ + "_jvcl_::", + "function" + ], + "body": [ + "_jvcl_::${1:generic_function}() {", + "\tlocal _arg=\"\\${1:-\"something\"}\"", + "\tif cmd; then", + "\t\t_arg=\"something else\"", + "\t\ttrue", + "\telse", + "\t\tfalse", + "\tfi", + "}", + ], + "description": [ + "This defines a generic function _jvcl_::generic_function() {}.\n", + "The reserved word function is optional.\n", + "If the function reserved word is supplied, the parentheses are optional.\n", + "1. Recommended way:\n", + "name() {}\n", + "2. C-like-way:\nfunction name [()] {}" + ] + }, + "array_loop": { + "prefix": [ + "for_array", + ], + "body": [ + "for _item in \"${MY_ARRAY[@]}\"; do", + "\techo \"${_item}\"", + "done", + ], + "description": [ + "Loop through an array", + ] + }, + "cat": { + "prefix": [ + "cat", + ], + "body": [ + "cat < 0 ALLOWED_HOSTS = [ "127.0.0.1", @@ -141,13 +142,37 @@ DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" -""" -SECURE_SSL_REDIRECT -https://docs.djangoproject.com/en/3.1/ref/settings/#secure-proxy-ssl-header -""" +""" NOTE: SECURE_SSL_REDIRECT + +If turning this to True causes infinite redirects, it probably means your site is +running behind a proxy and can’t tell which requests are secure and which are not. + +- https://docs.djangoproject.com/en/4.1/ref/settings/#std:setting-SECURE_SSL_REDIRECT +- https://docs.djangoproject.com/en/4.1/ref/settings/#secure-proxy-ssl-header SECURE_SSL_REDIRECT = True +SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') +""" + SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https") +SECURE_SSL_REDIRECT = True + +""" NOTE: SESSIONS +https://docs.djangoproject.com/en/4.1/ref/settings/#std-setting-SESSION_COOKIE_AGE +""" + +SESSION_COOKIE_SECURE = True +SESSION_COOKIE_AGE = 432000 # 5 days +SESSION_COOKIE_NAME = "wlc3972JK694TFPfDjOwX2F" + +""" NOTE: CSRF_USE_SESSIONS +Acquiring the token if CSRF_USE_SESSIONS or CSRF_COOKIE_HTTPONLY is True +https://docs.djangoproject.com/en/4.1/ref/csrf/#acquiring-the-token-if-csrf-use-sessions-or-csrf-cookie-httponly-is-true +""" + +CSRF_USE_SESSIONS = True +CSRF_COOKIE_SECURE = SESSION_COOKIE_SECURE +CSRF_COOKIE_HTTPONLY = CSRF_USE_SESSIONS "LOGGING" @@ -156,15 +181,29 @@ "disable_existing_loggers": False, "formatters": { "console": { + # "()": "core.django_colors_formatter.formatter.DjangoConsoleColors", "format": "{asctime} {levelname} {name} {message}", "style": "{", } }, "handlers": { - "console": {"class": "logging.StreamHandler", "formatter": "console"}, + "console": { + "class": "logging.StreamHandler", + "formatter": "console", + }, + "file": { + "class": "logging.FileHandler", + "formatter": "console", + "filename": "logfile.log", + }, + "mail_admins": { + "level": "ERROR", + "class": "django.utils.log.AdminEmailHandler", + "include_html": True, + }, }, "root": { - "handlers": ["console"], + "handlers": ["console", "file", "mail_admins"], "level": "DEBUG" if DEBUG else "INFO", }, } diff --git a/demo/templates/content.html b/demo/templates/content.html index 82ad901..66b1006 100644 --- a/demo/templates/content.html +++ b/demo/templates/content.html @@ -41,6 +41,47 @@
{% endif %} -Powered by Django. -{% endblock %} +
+ Powered by Django. + +

+ + + Django 4.1.7 + Python 3.11 + License EUPL 1.2 + + Code style black + CodeQL + codecov + Django Azure Active Directory Sign-In 🔑 on PyPI + + Become a sponsor to JV-conseil + Follow JV conseil on StackOverflow + Follow JVconseil on Twitter + Follow JVconseil on Mastodon + Follow JV conseil on GitHub + + +
+{% endblock %} \ No newline at end of file diff --git a/demo/templates/layout.html b/demo/templates/layout.html index 7bfc6c4..5fe110d 100644 --- a/demo/templates/layout.html +++ b/demo/templates/layout.html @@ -2,47 +2,47 @@ - - - - + + + + - - - - - {% block title %}{% endblock %} - + + + + + {% block title %}{% endblock %} + - + - + -
- {% block body %}{% endblock %} -
+
+ {% block body %}{% endblock %} +
- {% block flash_messages %}{% endblock %} -
- {% block footer%}{% endblock %} -
- - - - - + {% block flash_messages %}{% endblock %} +
+ {% block footer%}{% endblock %} +
+ + + + + \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index a6d9fc5..7119e95 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,8 +1,9 @@ # Django Azure Active Directory Sign-In 🔑 -[![Django 4.1.4](https://img.shields.io/badge/Django-4.1.4-green)](https://docs.djangoproject.com/en/4.0/releases/4.1.4/) -[![License BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](LICENSE) -[![Code style black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +[![Django 4.1](https://img.shields.io/badge/Django-4.1.7-green)](https://docs.djangoproject.com/en/4.1/releases/4.1.7/) +[![Python 3.11](https://img.shields.io/badge/Python-3.11.2-green)](https://www.python.org/downloads/release/python-3112/) +[![License EUPL 1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](LICENSE) +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![CodeQL](https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin/actions/workflows/codeql-analysis.yml) [![codecov](https://codecov.io/gh/JV-conseil-Internet-Consulting/django-azure-active-directory-signin/branch/main/graph/badge.svg?token=WLCTWKAPF6)](https://codecov.io/gh/JV-conseil-Internet-Consulting/django-azure-active-directory-signin) [![PyPI](https://img.shields.io/pypi/v/django-azure-active-directory-signin?color=green)](https://pypi.org/project/django-azure-active-directory-signin/) diff --git a/poetry.lock b/poetry.lock index f355656..0904f20 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.1 and should not be changed by hand. [[package]] name = "asgiref" @@ -215,63 +215,63 @@ files = [ [[package]] name = "coverage" -version = "7.2.1" +version = "7.2.2" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "coverage-7.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:49567ec91fc5e0b15356da07a2feabb421d62f52a9fff4b1ec40e9e19772f5f8"}, - {file = "coverage-7.2.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d2ef6cae70168815ed91388948b5f4fcc69681480a0061114db737f957719f03"}, - {file = "coverage-7.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3004765bca3acd9e015794e5c2f0c9a05587f5e698127ff95e9cfba0d3f29339"}, - {file = "coverage-7.2.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cca7c0b7f5881dfe0291ef09ba7bb1582cb92ab0aeffd8afb00c700bf692415a"}, - {file = "coverage-7.2.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2167d116309f564af56f9aa5e75ef710ef871c5f9b313a83050035097b56820"}, - {file = "coverage-7.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cb5f152fb14857cbe7f3e8c9a5d98979c4c66319a33cad6e617f0067c9accdc4"}, - {file = "coverage-7.2.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:87dc37f16fb5e3a28429e094145bf7c1753e32bb50f662722e378c5851f7fdc6"}, - {file = "coverage-7.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e191a63a05851f8bce77bc875e75457f9b01d42843f8bd7feed2fc26bbe60833"}, - {file = "coverage-7.2.1-cp310-cp310-win32.whl", hash = "sha256:e3ea04b23b114572b98a88c85379e9e9ae031272ba1fb9b532aa934c621626d4"}, - {file = "coverage-7.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:0cf557827be7eca1c38a2480484d706693e7bb1929e129785fe59ec155a59de6"}, - {file = "coverage-7.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:570c21a29493b350f591a4b04c158ce1601e8d18bdcd21db136fbb135d75efa6"}, - {file = "coverage-7.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9e872b082b32065ac2834149dc0adc2a2e6d8203080501e1e3c3c77851b466f9"}, - {file = "coverage-7.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fac6343bae03b176e9b58104a9810df3cdccd5cfed19f99adfa807ffbf43cf9b"}, - {file = "coverage-7.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abacd0a738e71b20e224861bc87e819ef46fedba2fb01bc1af83dfd122e9c319"}, - {file = "coverage-7.2.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9256d4c60c4bbfec92721b51579c50f9e5062c21c12bec56b55292464873508"}, - {file = "coverage-7.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:80559eaf6c15ce3da10edb7977a1548b393db36cbc6cf417633eca05d84dd1ed"}, - {file = "coverage-7.2.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:0bd7e628f6c3ec4e7d2d24ec0e50aae4e5ae95ea644e849d92ae4805650b4c4e"}, - {file = "coverage-7.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09643fb0df8e29f7417adc3f40aaf379d071ee8f0350ab290517c7004f05360b"}, - {file = "coverage-7.2.1-cp311-cp311-win32.whl", hash = "sha256:1b7fb13850ecb29b62a447ac3516c777b0e7a09ecb0f4bb6718a8654c87dfc80"}, - {file = "coverage-7.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:617a94ada56bbfe547aa8d1b1a2b8299e2ec1ba14aac1d4b26a9f7d6158e1273"}, - {file = "coverage-7.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8649371570551d2fd7dee22cfbf0b61f1747cdfb2b7587bb551e4beaaa44cb97"}, - {file = "coverage-7.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d2b9b5e70a21474c105a133ba227c61bc95f2ac3b66861143ce39a5ea4b3f84"}, - {file = "coverage-7.2.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae82c988954722fa07ec5045c57b6d55bc1a0890defb57cf4a712ced65b26ddd"}, - {file = "coverage-7.2.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:861cc85dfbf55a7a768443d90a07e0ac5207704a9f97a8eb753292a7fcbdfcfc"}, - {file = "coverage-7.2.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0339dc3237c0d31c3b574f19c57985fcbe494280153bbcad33f2cdf469f4ac3e"}, - {file = "coverage-7.2.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5928b85416a388dd557ddc006425b0c37e8468bd1c3dc118c1a3de42f59e2a54"}, - {file = "coverage-7.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8d3843ca645f62c426c3d272902b9de90558e9886f15ddf5efe757b12dd376f5"}, - {file = "coverage-7.2.1-cp37-cp37m-win32.whl", hash = "sha256:6a034480e9ebd4e83d1aa0453fd78986414b5d237aea89a8fdc35d330aa13bae"}, - {file = "coverage-7.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:6fce673f79a0e017a4dc35e18dc7bb90bf6d307c67a11ad5e61ca8d42b87cbff"}, - {file = "coverage-7.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7f099da6958ddfa2ed84bddea7515cb248583292e16bb9231d151cd528eab657"}, - {file = "coverage-7.2.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:97a3189e019d27e914ecf5c5247ea9f13261d22c3bb0cfcfd2a9b179bb36f8b1"}, - {file = "coverage-7.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a81dbcf6c6c877986083d00b834ac1e84b375220207a059ad45d12f6e518a4e3"}, - {file = "coverage-7.2.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78d2c3dde4c0b9be4b02067185136b7ee4681978228ad5ec1278fa74f5ca3e99"}, - {file = "coverage-7.2.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a209d512d157379cc9ab697cbdbb4cfd18daa3e7eebaa84c3d20b6af0037384"}, - {file = "coverage-7.2.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f3d07edb912a978915576a776756069dede66d012baa503022d3a0adba1b6afa"}, - {file = "coverage-7.2.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8dca3c1706670297851bca1acff9618455122246bdae623be31eca744ade05ec"}, - {file = "coverage-7.2.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b1991a6d64231a3e5bbe3099fb0dd7c9aeaa4275ad0e0aeff4cb9ef885c62ba2"}, - {file = "coverage-7.2.1-cp38-cp38-win32.whl", hash = "sha256:22c308bc508372576ffa3d2dbc4824bb70d28eeb4fcd79d4d1aed663a06630d0"}, - {file = "coverage-7.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:b0c0d46de5dd97f6c2d1b560bf0fcf0215658097b604f1840365296302a9d1fb"}, - {file = "coverage-7.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4dd34a935de268a133e4741827ae951283a28c0125ddcdbcbba41c4b98f2dfef"}, - {file = "coverage-7.2.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0f8318ed0f3c376cfad8d3520f496946977abde080439d6689d7799791457454"}, - {file = "coverage-7.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:834c2172edff5a08d78e2f53cf5e7164aacabeb66b369f76e7bb367ca4e2d993"}, - {file = "coverage-7.2.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4d70c853f0546855f027890b77854508bdb4d6a81242a9d804482e667fff6e6"}, - {file = "coverage-7.2.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a6450da4c7afc4534305b2b7d8650131e130610cea448ff240b6ab73d7eab63"}, - {file = "coverage-7.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:99f4dd81b2bb8fc67c3da68b1f5ee1650aca06faa585cbc6818dbf67893c6d58"}, - {file = "coverage-7.2.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bdd3f2f285ddcf2e75174248b2406189261a79e7fedee2ceeadc76219b6faa0e"}, - {file = "coverage-7.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f29351393eb05e6326f044a7b45ed8e38cb4dcc38570d12791f271399dc41431"}, - {file = "coverage-7.2.1-cp39-cp39-win32.whl", hash = "sha256:e2b50ebc2b6121edf352336d503357321b9d8738bb7a72d06fc56153fd3f4cd8"}, - {file = "coverage-7.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:bd5a12239c0006252244f94863f1c518ac256160cd316ea5c47fb1a11b25889a"}, - {file = "coverage-7.2.1-pp37.pp38.pp39-none-any.whl", hash = "sha256:436313d129db7cf5b4ac355dd2bd3f7c7e5294af077b090b85de75f8458b8616"}, - {file = "coverage-7.2.1.tar.gz", hash = "sha256:c77f2a9093ccf329dd523a9b2b3c854c20d2a3d968b6def3b820272ca6732242"}, + {file = "coverage-7.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c90e73bdecb7b0d1cea65a08cb41e9d672ac6d7995603d6465ed4914b98b9ad7"}, + {file = "coverage-7.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e2926b8abedf750c2ecf5035c07515770944acf02e1c46ab08f6348d24c5f94d"}, + {file = "coverage-7.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57b77b9099f172804e695a40ebaa374f79e4fb8b92f3e167f66facbf92e8e7f5"}, + {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:efe1c0adad110bf0ad7fb59f833880e489a61e39d699d37249bdf42f80590169"}, + {file = "coverage-7.2.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2199988e0bc8325d941b209f4fd1c6fa007024b1442c5576f1a32ca2e48941e6"}, + {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:81f63e0fb74effd5be736cfe07d710307cc0a3ccb8f4741f7f053c057615a137"}, + {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:186e0fc9cf497365036d51d4d2ab76113fb74f729bd25da0975daab2e107fd90"}, + {file = "coverage-7.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:420f94a35e3e00a2b43ad5740f935358e24478354ce41c99407cddd283be00d2"}, + {file = "coverage-7.2.2-cp310-cp310-win32.whl", hash = "sha256:38004671848b5745bb05d4d621526fca30cee164db42a1f185615f39dc997292"}, + {file = "coverage-7.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:0ce383d5f56d0729d2dd40e53fe3afeb8f2237244b0975e1427bfb2cf0d32bab"}, + {file = "coverage-7.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3eb55b7b26389dd4f8ae911ba9bc8c027411163839dea4c8b8be54c4ee9ae10b"}, + {file = "coverage-7.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2b96123a453a2d7f3995ddb9f28d01fd112319a7a4d5ca99796a7ff43f02af5"}, + {file = "coverage-7.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:299bc75cb2a41e6741b5e470b8c9fb78d931edbd0cd009c58e5c84de57c06731"}, + {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e1df45c23d4230e3d56d04414f9057eba501f78db60d4eeecfcb940501b08fd"}, + {file = "coverage-7.2.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:006ed5582e9cbc8115d2e22d6d2144a0725db542f654d9d4fda86793832f873d"}, + {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d683d230b5774816e7d784d7ed8444f2a40e7a450e5720d58af593cb0b94a212"}, + {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8efb48fa743d1c1a65ee8787b5b552681610f06c40a40b7ef94a5b517d885c54"}, + {file = "coverage-7.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c752d5264053a7cf2fe81c9e14f8a4fb261370a7bb344c2a011836a96fb3f57"}, + {file = "coverage-7.2.2-cp311-cp311-win32.whl", hash = "sha256:55272f33da9a5d7cccd3774aeca7a01e500a614eaea2a77091e9be000ecd401d"}, + {file = "coverage-7.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:92ebc1619650409da324d001b3a36f14f63644c7f0a588e331f3b0f67491f512"}, + {file = "coverage-7.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5afdad4cc4cc199fdf3e18088812edcf8f4c5a3c8e6cb69127513ad4cb7471a9"}, + {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0484d9dd1e6f481b24070c87561c8d7151bdd8b044c93ac99faafd01f695c78e"}, + {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d530191aa9c66ab4f190be8ac8cc7cfd8f4f3217da379606f3dd4e3d83feba69"}, + {file = "coverage-7.2.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ac0f522c3b6109c4b764ffec71bf04ebc0523e926ca7cbe6c5ac88f84faced0"}, + {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ba279aae162b20444881fc3ed4e4f934c1cf8620f3dab3b531480cf602c76b7f"}, + {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:53d0fd4c17175aded9c633e319360d41a1f3c6e352ba94edcb0fa5167e2bad67"}, + {file = "coverage-7.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c99cb7c26a3039a8a4ee3ca1efdde471e61b4837108847fb7d5be7789ed8fd9"}, + {file = "coverage-7.2.2-cp37-cp37m-win32.whl", hash = "sha256:5cc0783844c84af2522e3a99b9b761a979a3ef10fb87fc4048d1ee174e18a7d8"}, + {file = "coverage-7.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:817295f06eacdc8623dc4df7d8b49cea65925030d4e1e2a7c7218380c0072c25"}, + {file = "coverage-7.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6146910231ece63facfc5984234ad1b06a36cecc9fd0c028e59ac7c9b18c38c6"}, + {file = "coverage-7.2.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:387fb46cb8e53ba7304d80aadca5dca84a2fbf6fe3faf6951d8cf2d46485d1e5"}, + {file = "coverage-7.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:046936ab032a2810dcaafd39cc4ef6dd295df1a7cbead08fe996d4765fca9fe4"}, + {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e627dee428a176ffb13697a2c4318d3f60b2ccdde3acdc9b3f304206ec130ccd"}, + {file = "coverage-7.2.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4fa54fb483decc45f94011898727802309a109d89446a3c76387d016057d2c84"}, + {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3668291b50b69a0c1ef9f462c7df2c235da3c4073f49543b01e7eb1dee7dd540"}, + {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7c20b731211261dc9739bbe080c579a1835b0c2d9b274e5fcd903c3a7821cf88"}, + {file = "coverage-7.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5764e1f7471cb8f64b8cda0554f3d4c4085ae4b417bfeab236799863703e5de2"}, + {file = "coverage-7.2.2-cp38-cp38-win32.whl", hash = "sha256:4f01911c010122f49a3e9bdc730eccc66f9b72bd410a3a9d3cb8448bb50d65d3"}, + {file = "coverage-7.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:c448b5c9e3df5448a362208b8d4b9ed85305528313fca1b479f14f9fe0d873b8"}, + {file = "coverage-7.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfe7085783cda55e53510482fa7b5efc761fad1abe4d653b32710eb548ebdd2d"}, + {file = "coverage-7.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9d22e94e6dc86de981b1b684b342bec5e331401599ce652900ec59db52940005"}, + {file = "coverage-7.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:507e4720791977934bba016101579b8c500fb21c5fa3cd4cf256477331ddd988"}, + {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc4803779f0e4b06a2361f666e76f5c2e3715e8e379889d02251ec911befd149"}, + {file = "coverage-7.2.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db8c2c5ace167fd25ab5dd732714c51d4633f58bac21fb0ff63b0349f62755a8"}, + {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4f68ee32d7c4164f1e2c8797535a6d0a3733355f5861e0f667e37df2d4b07140"}, + {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d52f0a114b6a58305b11a5cdecd42b2e7f1ec77eb20e2b33969d702feafdd016"}, + {file = "coverage-7.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:797aad79e7b6182cb49c08cc5d2f7aa7b2128133b0926060d0a8889ac43843be"}, + {file = "coverage-7.2.2-cp39-cp39-win32.whl", hash = "sha256:db45eec1dfccdadb179b0f9ca616872c6f700d23945ecc8f21bb105d74b1c5fc"}, + {file = "coverage-7.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:8dbe2647bf58d2c5a6c5bcc685f23b5f371909a5624e9f5cd51436d6a9f6c6ef"}, + {file = "coverage-7.2.2-pp37.pp38.pp39-none-any.whl", hash = "sha256:872d6ce1f5be73f05bea4df498c140b9e7ee5418bfa2cc8204e7f9b817caa968"}, + {file = "coverage-7.2.2.tar.gz", hash = "sha256:36dd42da34fe94ed98c39887b86db9d06777b1c8f860520e21126a75507024f2"}, ] [package.extras] @@ -279,35 +279,35 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "39.0.1" +version = "39.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "cryptography-39.0.1-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965"}, - {file = "cryptography-39.0.1-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc"}, - {file = "cryptography-39.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41"}, - {file = "cryptography-39.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505"}, - {file = "cryptography-39.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6"}, - {file = "cryptography-39.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502"}, - {file = "cryptography-39.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f"}, - {file = "cryptography-39.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106"}, - {file = "cryptography-39.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c"}, - {file = "cryptography-39.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4"}, - {file = "cryptography-39.0.1-cp36-abi3-win32.whl", hash = "sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8"}, - {file = "cryptography-39.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac"}, - {file = "cryptography-39.0.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad"}, - {file = "cryptography-39.0.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c5caeb8188c24888c90b5108a441c106f7faa4c4c075a2bcae438c6e8ca73cef"}, - {file = "cryptography-39.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4789d1e3e257965e960232345002262ede4d094d1a19f4d3b52e48d4d8f3b885"}, - {file = "cryptography-39.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388"}, - {file = "cryptography-39.0.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336"}, - {file = "cryptography-39.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2"}, - {file = "cryptography-39.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e"}, - {file = "cryptography-39.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0"}, - {file = "cryptography-39.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6"}, - {file = "cryptography-39.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a"}, - {file = "cryptography-39.0.1.tar.gz", hash = "sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695"}, + {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:2725672bb53bb92dc7b4150d233cd4b8c59615cd8288d495eaa86db00d4e5c06"}, + {file = "cryptography-39.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:23df8ca3f24699167daf3e23e51f7ba7334d504af63a94af468f468b975b7dd7"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:eb40fe69cfc6f5cdab9a5ebd022131ba21453cf7b8a7fd3631f45bbf52bed612"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc0521cce2c1d541634b19f3ac661d7a64f9555135e9d8af3980965be717fd4a"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffd394c7896ed7821a6d13b24657c6a34b6e2650bd84ae063cf11ccffa4f1a97"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:e8a0772016feeb106efd28d4a328e77dc2edae84dfbac06061319fdb669ff828"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8f35c17bd4faed2bc7797d2a66cbb4f986242ce2e30340ab832e5d99ae60e011"}, + {file = "cryptography-39.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:b49a88ff802e1993b7f749b1eeb31134f03c8d5c956e3c125c75558955cda536"}, + {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c682e736513db7d04349b4f6693690170f95aac449c56f97415c6980edef5"}, + {file = "cryptography-39.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d7d84a512a59f4412ca8549b01f94be4161c94efc598bf09d027d67826beddc0"}, + {file = "cryptography-39.0.2-cp36-abi3-win32.whl", hash = "sha256:c43ac224aabcbf83a947eeb8b17eaf1547bce3767ee2d70093b461f31729a480"}, + {file = "cryptography-39.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:788b3921d763ee35dfdb04248d0e3de11e3ca8eb22e2e48fef880c42e1f3c8f9"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d15809e0dbdad486f4ad0979753518f47980020b7a34e9fc56e8be4f60702fac"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:50cadb9b2f961757e712a9737ef33d89b8190c3ea34d0fb6675e00edbe35d074"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:103e8f7155f3ce2ffa0049fe60169878d47a4364b277906386f8de21c9234aa1"}, + {file = "cryptography-39.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:6236a9610c912b129610eb1a274bdc1350b5df834d124fa84729ebeaf7da42c3"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e944fe07b6f229f4c1a06a7ef906a19652bdd9fd54c761b0ff87e83ae7a30354"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:35d658536b0a4117c885728d1a7032bdc9a5974722ae298d6c533755a6ee3915"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:30b1d1bfd00f6fc80d11300a29f1d8ab2b8d9febb6ed4a38a76880ec564fae84"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e029b844c21116564b8b61216befabca4b500e6816fa9f0ba49527653cae2108"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fa507318e427169ade4e9eccef39e9011cdc19534f55ca2f36ec3f388c1f70f3"}, + {file = "cryptography-39.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8bc0008ef798231fac03fe7d26e82d601d15bd16f3afaad1c6113771566570f3"}, + {file = "cryptography-39.0.2.tar.gz", hash = "sha256:bc5b871e977c8ee5a1bbc42fa8d19bcc08baf0c51cbf1586b0e87a2694dde42f"}, ] [package.dependencies] @@ -527,26 +527,26 @@ files = [ [[package]] name = "pathspec" -version = "0.11.0" +version = "0.11.1" description = "Utility library for gitignore style pattern matching of file paths." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pathspec-0.11.0-py3-none-any.whl", hash = "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229"}, - {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, + {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, + {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, ] [[package]] name = "platformdirs" -version = "3.0.0" +version = "3.1.1" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, - {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"}, + {file = "platformdirs-3.1.1-py3-none-any.whl", hash = "sha256:e5986afb596e4bb5bde29a79ac9061aa955b94fca2399b7aaac4090860920dd8"}, + {file = "platformdirs-3.1.1.tar.gz", hash = "sha256:024996549ee88ec1a9aa99ff7f8fc819bb59e2c3477b410d90a16d32d6e707aa"}, ] [package.extras] @@ -628,14 +628,14 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pytest" -version = "7.2.1" +version = "7.2.2" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.2.1-py3-none-any.whl", hash = "sha256:c7c6ca206e93355074ae32f7403e8ea12163b1163c976fee7d4d84027c162be5"}, - {file = "pytest-7.2.1.tar.gz", hash = "sha256:d45e0952f3727241918b8fd0f376f5ff6b301cc0777c6f9a556935c92d8a7d42"}, + {file = "pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e"}, + {file = "pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"}, ] [package.dependencies] @@ -761,14 +761,14 @@ files = [ [[package]] name = "urllib3" -version = "1.26.14" +version = "1.26.15" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ - {file = "urllib3-1.26.14-py2.py3-none-any.whl", hash = "sha256:75edcdc2f7d85b137124a6c3c9fc3933cdeaa12ecb9a6a959f22797a0feca7e1"}, - {file = "urllib3-1.26.14.tar.gz", hash = "sha256:076907bf8fd355cde77728471316625a4d2f7e713c125f51953bb5b3eecf4f72"}, + {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, + {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, ] [package.extras] diff --git a/pyproject.toml b/pyproject.toml index b3d240a..965451a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "django-azure-active-directory-signin" version = "0.2.1" description = "Sign-in users to your Django Web app with Azure Active Directory." authors = ["JV conseil "] -license = "BSD-3-Clause" +license = "EUPL-1.2" readme = "README.md" homepage = "https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin" repository = "https://github.com/JV-conseil-Internet-Consulting/django-azure-active-directory-signin" diff --git a/requirements-dev.txt b/requirements-dev.txt index 84a39a0..64ded5f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,9 +2,9 @@ attrs==22.2.0 ; python_version >= "3.11" black==23.1.0 ; python_version >= "3.11" click==8.1.3 ; python_version >= "3.11" colorama==0.4.6 ; python_version >= "3.11" and sys_platform == "win32" or python_version >= "3.11" and platform_system == "Windows" -coverage[toml]==7.2.1 ; python_version >= "3.11" +coverage[toml]==7.2.2 ; python_version >= "3.11" django-sslserver==0.22 ; python_version >= "3.11" -faker==17.5.0 ; python_version >= "3.11" +faker==12.0.1 ; python_version >= "3.11" flake8-isort==6.0.0 ; python_version >= "3.11" flake8==6.0.0 ; python_version >= "3.11" iniconfig==2.0.0 ; python_version >= "3.11" @@ -13,13 +13,13 @@ mccabe==0.7.0 ; python_version >= "3.11" mixer==7.2.2 ; python_version >= "3.11" mypy-extensions==1.0.0 ; python_version >= "3.11" packaging==23.0 ; python_version >= "3.11" -pathspec==0.11.0 ; python_version >= "3.11" -platformdirs==3.0.0 ; python_version >= "3.11" +pathspec==0.11.1 ; python_version >= "3.11" +platformdirs==3.1.1 ; python_version >= "3.11" pluggy==1.0.0 ; python_version >= "3.11" pycodestyle==2.10.0 ; python_version >= "3.11" pyflakes==3.0.1 ; python_version >= "3.11" pytest-cov==4.0.0 ; python_version >= "3.11" pytest-django==4.5.2 ; python_version >= "3.11" -pytest==7.2.1 ; python_version >= "3.11" +pytest==7.2.2 ; python_version >= "3.11" python-dateutil==2.8.2 ; python_version >= "3.11" six==1.16.0 ; python_version >= "3.11" diff --git a/requirements.txt b/requirements.txt index 5066b9c..3ea3cab 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,8 @@ asgiref==3.6.0 ; python_version >= "3.11" certifi==2022.12.7 ; python_version >= "3.11" cffi==1.15.1 ; python_version >= "3.11" -charset-normalizer==3.0.1 ; python_version >= "3.11" -cryptography==39.0.1 ; python_version >= "3.11" +charset-normalizer==2.0.12 ; python_version >= "3.11" +cryptography==39.0.2 ; python_version >= "3.11" django==4.1.7 ; python_version >= "3.11" idna==3.4 ; python_version >= "3.11" msal==1.21.0 ; python_version >= "3.11" @@ -11,4 +11,4 @@ pyjwt[crypto]==2.6.0 ; python_version >= "3.11" requests==2.27.1 ; python_version >= "3.11" sqlparse==0.4.3 ; python_version >= "3.11" tzdata==2022.7 ; sys_platform == "win32" and python_version >= "3.11" -urllib3==1.26.14 ; python_version >= "3.11" +urllib3==1.26.15 ; python_version >= "3.11" diff --git a/settings.conf b/settings.conf new file mode 100755 index 0000000..2386847 --- /dev/null +++ b/settings.conf @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# -*- coding: UTF-8 -*- +# +# author : JV-conseil +# credits : JV-conseil +# copyright : Copyright (c) 2019-2023 JV-conseil +# All rights reserved +#==================================================== + +BASH_STRICT_MODE=1 +DEBUG=0 + +REPO_PARAM[DBNAME]="welcome" +REPO_PARAM[DBUSER]="manager_welcome" +REPO_PARAM[postgresql]="14" +REPO_PARAM[python]="3.11"