From caa65b25d57230c6db4c56ca5d0fe5e6587057cf Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Fri, 23 Jul 2021 12:08:21 +0200 Subject: [PATCH 01/24] Add deploy_github_pages_docs_for_release.yaml and small fixes Add deploy-to-github-pages-release.sh and other fixes --- .../deploy_github_pages_docs_for_release.yaml | 33 +++++++++++++++++++ doc/api/exasol_bucketfs_utils_python.rst | 25 ++++++++++++++ doc/deploy-to-github-pages-current.sh | 3 +- doc/deploy-to-github-pages-release.sh | 15 +++++++++ doc/deploy-to-github-pages.sh | 14 ++++---- pyproject.toml | 3 ++ 6 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/deploy_github_pages_docs_for_release.yaml create mode 100644 doc/api/exasol_bucketfs_utils_python.rst create mode 100755 doc/deploy-to-github-pages-release.sh diff --git a/.github/workflows/deploy_github_pages_docs_for_release.yaml b/.github/workflows/deploy_github_pages_docs_for_release.yaml new file mode 100644 index 00000000..e959d7aa --- /dev/null +++ b/.github/workflows/deploy_github_pages_docs_for_release.yaml @@ -0,0 +1,33 @@ +name: Build and push documentation for main branch + +on: + push: + tags: + - "**" +jobs: + create_github_pages_docs: + strategy: + fail-fast: false + matrix: + python-version: [3.6] + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Install python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install poetry + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: 1.1.4 + - name: Poetry install + run: poetry install + - name: Deploy documentation to github-pages-main branch + run: | + git config --local user.email "opensource@exasol.com" + git config --local user.name "GitHub Action" + git fetch + poetry run poe push-html-doc-to-github-pages-release diff --git a/doc/api/exasol_bucketfs_utils_python.rst b/doc/api/exasol_bucketfs_utils_python.rst new file mode 100644 index 00000000..10f5c468 --- /dev/null +++ b/doc/api/exasol_bucketfs_utils_python.rst @@ -0,0 +1,25 @@ +exasol\_bucketfs\_utils\_python package +======================================= + +Submodules +---------- + +.. toctree:: + :maxdepth: 1 + + exasol_bucketfs_utils_python.bucket_config + exasol_bucketfs_utils_python.bucketfs_config + exasol_bucketfs_utils_python.bucketfs_connection_config + exasol_bucketfs_utils_python.bucketfs_utils + exasol_bucketfs_utils_python.download + exasol_bucketfs_utils_python.github_release_file_bucketfs_uploader + exasol_bucketfs_utils_python.release_link_extractor + exasol_bucketfs_utils_python.upload + +Module contents +--------------- + +.. automodule:: exasol_bucketfs_utils_python + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/deploy-to-github-pages-current.sh b/doc/deploy-to-github-pages-current.sh index 605df1b2..843c476a 100755 --- a/doc/deploy-to-github-pages-current.sh +++ b/doc/deploy-to-github-pages-current.sh @@ -6,14 +6,13 @@ PUSH_ENABLED="$1" SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" -SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" SOURCE_BRANCH="$(git rev-parse --abbrev-ref HEAD)" if [ "$SOURCE_BRANCH" != "main" ]; then if [ -n "$SOURCE_BRANCH" ]; then TARGET_BRANCH="$("$SCRIPT_DIR/get_target_branch_name.sh" "$SOURCE_BRANCH")" bash "$SCRIPT_DIR/deploy-to-github-pages.sh" "$TARGET_BRANCH" origin "$PUSH_ENABLED" "$SOURCE_BRANCH" else - echo "ERROR: Could not acquire your current checked out branch. Please check the state of your " + echo "ERROR: Could not acquire your current checked out branch. Please check the state of your working copy" fi else echo "ERROR: Source branch is 'main'." diff --git a/doc/deploy-to-github-pages-release.sh b/doc/deploy-to-github-pages-release.sh new file mode 100755 index 00000000..eaf28f79 --- /dev/null +++ b/doc/deploy-to-github-pages-release.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -euo pipefail + +PUSH_ENABLED="$1" + +SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" + +TAG="$(git describe --tags --exact-match)" +if [ -n "$TAG" ]; then + TARGET_BRANCH="$("$SCRIPT_DIR/get_target_branch_name.sh" "main")" + bash "$SCRIPT_DIR/deploy-to-github-pages.sh" "$TARGET_BRANCH" origin "$PUSH_ENABLED" "$TAG" +else + echo "ERROR: Could not acquire your current checked out tag. Please check the state of your working copy" +fi \ No newline at end of file diff --git a/doc/deploy-to-github-pages.sh b/doc/deploy-to-github-pages.sh index df9ed81f..71e02291 100755 --- a/doc/deploy-to-github-pages.sh +++ b/doc/deploy-to-github-pages.sh @@ -16,11 +16,13 @@ detect_or_verify_source_branch() { fi SOURCE_BRANCH="$CURRENT_BRANCH" fi - if [ "$SOURCE_BRANCH" != "$CURRENT_BRANCH" ]; then - echo "Abort. Specified Source Branch doesn't correspond to the currently checked out branch $CURRENT_BRANCH." - exit 1 + SOURCE_BRANCH_COMMIT_ID="$(git rev-parse "$SOURCE_BRANCH")" + if [ "$CURRENT_COMMIT_ID" != "$SOURCE_BRANCH_COMMIT_ID" ] + then + echo "Abort. Current commit id $CURRENT_COMMIT_ID and commit id of source branch $SOURCE_BRANCH_COMMIT_ID are not equal." + exit 1 fi - echo "Detected current branch $CURRENT_BRANCH" + echo "Detected source branch $SOURCE_BRANCH" } cleanup_trap() { @@ -104,8 +106,8 @@ git_commit_and_push() { pushd "$WORKTREE" echo "Current directory before commit and push $PWD" echo "Git commit" - echo "BRANCH=$SOURCE_BRANCH" >.source - echo "COMMIT_ID=$CURRENT_COMMIT_ID" >>.source + echo "BRANCH=$SOURCE_BRANCH" > "$OUTPUT_DIR/.source" + echo "COMMIT_ID=$CURRENT_COMMIT_ID" >> "$OUTPUT_DIR/.source" git add . git diff-index --quiet HEAD || git commit --no-verify -m "Update documentation from source branch '$SOURCE_BRANCH' with commit id '$CURRENT_COMMIT_ID'" if [ -n "$PUSH_ORIGIN" ] && [ "$PUSH_ENABLED" == "push" ]; then diff --git a/pyproject.toml b/pyproject.toml index 608c1120..7c74ac09 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,5 +50,8 @@ commit-html-doc-to-github-pages-main = { shell = "cd $(git rev-parse --show-topl push-html-doc-to-github-pages-main = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-main.sh push" } commit-html-doc-to-github-pages-current = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-current.sh commit" } push-html-doc-to-github-pages-current = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-current.sh push" } +commit-html-doc-to-github-pages-release = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-release.sh commit" } +push-html-doc-to-github-pages-release = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-release.sh push" } + test = "pytest tests" From 5c0c3f7a634a841e7e2baef1fc9f277498a728e3 Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 20 May 2022 13:12:07 +0200 Subject: [PATCH 02/24] integrated use of sphinx-github-pages-generator --- ...ch.yaml => check_documentation_build.yaml} | 19 ++- ...for_main.yaml => create_release_docu.yaml} | 16 +- .../deploy_github_pages_docs_for_release.yaml | 33 ---- doc/call_pages_generator.py | 5 + doc/conf.py | 2 +- doc/deploy-to-github-pages-current.sh | 19 --- doc/deploy-to-github-pages-main.sh | 14 -- doc/deploy-to-github-pages-release.sh | 15 -- doc/deploy-to-github-pages.sh | 146 ------------------ doc/get_target_branch_name.sh | 6 - pyproject.toml | 18 +-- 11 files changed, 35 insertions(+), 258 deletions(-) rename .github/workflows/{check_github_pages_docs_for_feature_branch.yaml => check_documentation_build.yaml} (59%) rename .github/workflows/{deploy_github_pages_docs_for_main.yaml => create_release_docu.yaml} (72%) delete mode 100644 .github/workflows/deploy_github_pages_docs_for_release.yaml create mode 100644 doc/call_pages_generator.py delete mode 100755 doc/deploy-to-github-pages-current.sh delete mode 100755 doc/deploy-to-github-pages-main.sh delete mode 100755 doc/deploy-to-github-pages-release.sh delete mode 100755 doc/get_target_branch_name.sh diff --git a/.github/workflows/check_github_pages_docs_for_feature_branch.yaml b/.github/workflows/check_documentation_build.yaml similarity index 59% rename from .github/workflows/check_github_pages_docs_for_feature_branch.yaml rename to .github/workflows/check_documentation_build.yaml index 1c438f31..c5bdb289 100644 --- a/.github/workflows/check_github_pages_docs_for_feature_branch.yaml +++ b/.github/workflows/check_documentation_build.yaml @@ -1,10 +1,13 @@ -name: Check documentation build and deployment for feature branch +name: Check the documentation build, publish if on main on: push: + # This way it only triggers on branch pushes, + # and ignores releases that push a tag. + tags-ignore: + - '**' branches-ignore: - - main - - github-pages/* + - github-pages/* jobs: create_github_pages_docs: @@ -27,12 +30,12 @@ jobs: poetry-version: 1.1.11 - name: Poetry install run: poetry install - - name: Test documentation deployment for current feature branch + - name: Deploy documentation to github-pages branch run: | git config --local user.email "opensource@exasol.com" git config --local user.name "GitHub Action" git fetch - SOURCE_BRANCH="$(git rev-parse --abbrev-ref HEAD)" - TARGET_BRANCH="$(doc/get_target_branch_name.sh "$SOURCE_BRANCH")" - poetry run poe push-html-doc-to-github-pages-current || echo - git push origin --delete "$TARGET_BRANCH" + poetry run poe push_pages_current + - name: Cleanup delete target branch + if: ${{ !contains(github.ref, 'main') }} + run: git push -d origin "github-pages/"$(git branch --show-current)"" \ No newline at end of file diff --git a/.github/workflows/deploy_github_pages_docs_for_main.yaml b/.github/workflows/create_release_docu.yaml similarity index 72% rename from .github/workflows/deploy_github_pages_docs_for_main.yaml rename to .github/workflows/create_release_docu.yaml index 1b56d258..cf58ac37 100644 --- a/.github/workflows/deploy_github_pages_docs_for_main.yaml +++ b/.github/workflows/create_release_docu.yaml @@ -1,17 +1,19 @@ -name: Build and push documentation for main branch +name: Generate release documentation on: - push: - branches: - - main + release: + types: [published] jobs: - create_github_pages_docs: + + publish-release-documentation: strategy: fail-fast: false matrix: python-version: [3.8] runs-on: ubuntu-latest + environment: publish + steps: - name: Checkout uses: actions/checkout@v2 @@ -25,9 +27,9 @@ jobs: poetry-version: 1.1.11 - name: Poetry install run: poetry install - - name: Deploy documentation to github-pages-main branch + - name: Deploy release documentation to github-pages branch run: | git config --local user.email "opensource@exasol.com" git config --local user.name "GitHub Action" git fetch - poetry run poe push-html-doc-to-github-pages-main + poetry run poe push_pages_release diff --git a/.github/workflows/deploy_github_pages_docs_for_release.yaml b/.github/workflows/deploy_github_pages_docs_for_release.yaml deleted file mode 100644 index e959d7aa..00000000 --- a/.github/workflows/deploy_github_pages_docs_for_release.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: Build and push documentation for main branch - -on: - push: - tags: - - "**" -jobs: - create_github_pages_docs: - strategy: - fail-fast: false - matrix: - python-version: [3.6] - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Install python - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install poetry - uses: abatilo/actions-poetry@v2.0.0 - with: - poetry-version: 1.1.4 - - name: Poetry install - run: poetry install - - name: Deploy documentation to github-pages-main branch - run: | - git config --local user.email "opensource@exasol.com" - git config --local user.name "GitHub Action" - git fetch - poetry run poe push-html-doc-to-github-pages-release diff --git a/doc/call_pages_generator.py b/doc/call_pages_generator.py new file mode 100644 index 00000000..ebe7a36e --- /dev/null +++ b/doc/call_pages_generator.py @@ -0,0 +1,5 @@ +import exasol_sphinx_github_pages_generator.deploy_github_pages as deploy_github_pages +import sys + +if __name__ == "__main__": + deploy_github_pages.deploy_github_pages(sys.argv[1:]) diff --git a/doc/conf.py b/doc/conf.py index 55c2a7d7..cdc8aad2 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -60,7 +60,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'alabaster' +html_theme = 'furo' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/doc/deploy-to-github-pages-current.sh b/doc/deploy-to-github-pages-current.sh deleted file mode 100755 index 843c476a..00000000 --- a/doc/deploy-to-github-pages-current.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -PUSH_ENABLED="$1" - -SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" - -SOURCE_BRANCH="$(git rev-parse --abbrev-ref HEAD)" -if [ "$SOURCE_BRANCH" != "main" ]; then - if [ -n "$SOURCE_BRANCH" ]; then - TARGET_BRANCH="$("$SCRIPT_DIR/get_target_branch_name.sh" "$SOURCE_BRANCH")" - bash "$SCRIPT_DIR/deploy-to-github-pages.sh" "$TARGET_BRANCH" origin "$PUSH_ENABLED" "$SOURCE_BRANCH" - else - echo "ERROR: Could not acquire your current checked out branch. Please check the state of your working copy" - fi -else - echo "ERROR: Source branch is 'main'." -fi diff --git a/doc/deploy-to-github-pages-main.sh b/doc/deploy-to-github-pages-main.sh deleted file mode 100755 index 347a3fc6..00000000 --- a/doc/deploy-to-github-pages-main.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -PUSH_ENABLED="$1" - -set -euo pipefail - -SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" -SOURCE_BRANCH="$(git rev-parse --abbrev-ref HEAD)" -if [ "$SOURCE_BRANCH" == "main" ]; then - TARGET_BRANCH="$("$SCRIPT_DIR/get_target_branch_name.sh" "main")" - bash "$SCRIPT_DIR/deploy-to-github-pages.sh" "$TARGET_BRANCH" origin "$PUSH_ENABLED" "$SOURCE_BRANCH" -else - echo "Abort. Source branch is not 'main', you are at branch '$SOURCE_BRANCH'" -fi diff --git a/doc/deploy-to-github-pages-release.sh b/doc/deploy-to-github-pages-release.sh deleted file mode 100755 index eaf28f79..00000000 --- a/doc/deploy-to-github-pages-release.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -PUSH_ENABLED="$1" - -SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" - -TAG="$(git describe --tags --exact-match)" -if [ -n "$TAG" ]; then - TARGET_BRANCH="$("$SCRIPT_DIR/get_target_branch_name.sh" "main")" - bash "$SCRIPT_DIR/deploy-to-github-pages.sh" "$TARGET_BRANCH" origin "$PUSH_ENABLED" "$TAG" -else - echo "ERROR: Could not acquire your current checked out tag. Please check the state of your working copy" -fi \ No newline at end of file diff --git a/doc/deploy-to-github-pages.sh b/doc/deploy-to-github-pages.sh index 71e02291..e69de29b 100755 --- a/doc/deploy-to-github-pages.sh +++ b/doc/deploy-to-github-pages.sh @@ -1,146 +0,0 @@ -#!/bin/bash -set -x - -PUSH_ORIGIN="$2" -PUSH_ENABLED="$3" -SOURCE_BRANCH="$4" - -set -euo pipefail - -detect_or_verify_source_branch() { - CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" - if [ -z "$SOURCE_BRANCH" ]; then - if [ -z "$CURRENT_BRANCH" ]; then - echo "Abort. Could not detect current branch and no source branch given." - exit 1 - fi - SOURCE_BRANCH="$CURRENT_BRANCH" - fi - SOURCE_BRANCH_COMMIT_ID="$(git rev-parse "$SOURCE_BRANCH")" - if [ "$CURRENT_COMMIT_ID" != "$SOURCE_BRANCH_COMMIT_ID" ] - then - echo "Abort. Current commit id $CURRENT_COMMIT_ID and commit id of source branch $SOURCE_BRANCH_COMMIT_ID are not equal." - exit 1 - fi - echo "Detected source branch $SOURCE_BRANCH" -} - -cleanup_trap() { - if [ -e "$WORKTREE" ]; then - echo "Cleanup git worktree $WORKTREE" - git worktree remove --force "$WORKTREE" || echo "Removing worktree $WORKTREE failed" - fi - echo "Cleanup temporary directory $TMP" - rm -rf "$TMP" -} - -checkout_target_branch_as_worktree() { - TARGET_BRANCH_EXISTS="$(git show-branch "remotes/origin/$TARGET_BRANCH" || echo)" - if [ -n "$TARGET_BRANCH_EXISTS" ]; then - echo "Create worktree from existing branch $TARGET_BRANCH" - git worktree add "$WORKTREE" "$TARGET_BRANCH" - else - echo "Create worktree from new branch $TARGET_BRANCH" - # We need to create the worktree directly with the TARGET_BRANCH, - # because every other branch could be already checked out - git branch "$TARGET_BRANCH" - git worktree add "$WORKTREE" "$TARGET_BRANCH" - pushd "$WORKTREE" - # We need to set the TARGET_BRANCH to the default branch - # The default branch from github for pages is gh-pages, but you can change that. - # Not using the default branch actually has benefits, because the branch gh-pages enforces some things. - # We use github-pages/main with separate history for Github Pages, - # because automated commits to the main branch can cause problems and - # we don't want to mix the generated documentation with sources. - # Furthermore, Github Pages expects a certain directory structure in the repository - # which we only can provide with a separate history. - GH_PAGES_ROOT_BRANCH=github-pages/root # is needed to temporarly create a new root commit - GH_PAGES_MAIN_BRANCH=github-pages/main - GH_PAGES_MAIN_BRANCH_EXISTS="$(git show-ref "refs/heads/$PUSH_ORIGIN/$GH_PAGES_MAIN_BRANCH" || echo)" - if [ -n "$GH_PAGES_MAIN_BRANCH_EXISTS" ] - then - git reset --hard "$PUSH_ORIGIN/$GH_PAGES_MAIN_BRANCH" - else - echo "Creating a new empty root commit for the Github Pages in root branch $GH_PAGES_ROOT_BRANCH." - git checkout --orphan "$GH_PAGES_ROOT_BRANCH" - git reset --hard - git commit --no-verify --allow-empty -m 'Initial empty commit for Github Pages' - echo "Reset target branch $TARGET_BRANCH to root branch $GH_PAGES_ROOT_BRANCH" - git checkout "$TARGET_BRANCH" - git reset --hard "$GH_PAGES_ROOT_BRANCH" - echo "Delete root branch $GH_PAGES_ROOT_BRANCH" - git branch -D "$GH_PAGES_ROOT_BRANCH" - fi - popd - fi -} - -build_and_copy_documentation() { - echo "Build api-doc" - sphinx-apidoc -T -d 1 --separate -o "$SCRIPT_DIR/api" "$SCRIPT_DIR/../exasol_bucketfs_utils_python" - - echo "Build with sphinx" - sphinx-build -M html "$SCRIPT_DIR" "$BUILD_DIR" -W - - echo "Generated HTML Output" - HTML_OUTPUT_DIR="$BUILD_DIR/html/" - echo "Using HTML_OUTPUT_DIR=$HTML_OUTPUT_DIR" - ls -la "$HTML_OUTPUT_DIR" - - OUTPUT_DIR="${WORKTREE:?}/${SOURCE_BRANCH:?}" - echo "Using OUTPUT_DIR=$OUTPUT_DIR" - if [ -e "${OUTPUT_DIR}" ]; then - echo "Removing existing output directory $OUTPUT_DIR" - rm -rf "${OUTPUT_DIR}" - fi - echo "Creating output directory $OUTPUT_DIR" - mkdir -p "$OUTPUT_DIR" - echo "Copying HTML output $HTML_OUTPUT_DIR to the output directory $OUTPUT_DIR" - find "$HTML_OUTPUT_DIR" -mindepth 1 -maxdepth 1 -exec mv -t "$OUTPUT_DIR" -- {} + - echo "Content of output directory $OUTPUT_DIR" - touch "$WORKTREE/.nojekyll" - ls -la "$OUTPUT_DIR" -} - -git_commit_and_push() { - pushd "$WORKTREE" - echo "Current directory before commit and push $PWD" - echo "Git commit" - echo "BRANCH=$SOURCE_BRANCH" > "$OUTPUT_DIR/.source" - echo "COMMIT_ID=$CURRENT_COMMIT_ID" >> "$OUTPUT_DIR/.source" - git add . - git diff-index --quiet HEAD || git commit --no-verify -m "Update documentation from source branch '$SOURCE_BRANCH' with commit id '$CURRENT_COMMIT_ID'" - if [ -n "$PUSH_ORIGIN" ] && [ "$PUSH_ENABLED" == "push" ]; then - echo "Git push $PUSH_ORIGIN $TARGET_BRANCH" - git push "$PUSH_ORIGIN" "$TARGET_BRANCH" - fi - popd -} - -SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" - -TMP="$(mktemp -d)" -WORKTREE="$TMP/worktree" -BUILD_DIR="$TMP/build" -trap 'cleanup_trap' EXIT - -TARGET_BRANCH="$1" -CURRENT_COMMIT_ID="$(git rev-parse HEAD)" - -echo "Commandline parameter" -echo "TARGET_BRANCH=$TARGET_BRANCH" -echo "PUSH_ORIGIN=$PUSH_ORIGIN" -echo "PUSH_ENABLED=$PUSH_ENABLED" -echo "SOURCE_BRANCH=$SOURCE_BRANCH" -echo -echo "Using following Directories:" -echo "TMP=$TMP" -echo "TMP=$TMP" -echo "WORKTREE=$WORKTREE" -echo "BUILD_DIR=$BUILD_DIR" -echo "CURRENT_COMMIT_ID=$CURRENT_COMMIT_ID" -echo -detect_or_verify_source_branch -checkout_target_branch_as_worktree -build_and_copy_documentation -git_commit_and_push diff --git a/doc/get_target_branch_name.sh b/doc/get_target_branch_name.sh deleted file mode 100755 index eff883c2..00000000 --- a/doc/get_target_branch_name.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -BRANCH=$1 -echo "github-pages/$BRANCH" \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 7c74ac09..ac4f9ee7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,25 +33,25 @@ myst-parser = "^0.17.0" pyexasol = "^0.24.0" dill = "^0.3.4" exasol-udf-mock-python = { git = "https://github.com/exasol/udf-mock-python.git", branch = "master" } +exasol-sphinx-github-pages-generator = { git = "https://github.com/exasol/sphinx-github-pages-generator.git", branch = "feature/20-add-action-for-release-docu" } gitpython = ">=2.1.0" toml = ">=0.10.2" [tool.poe.tasks] build-html-doc = {shell = """ cd "$(git rev-parse --show-toplevel)/doc"; - make clean-build; make html + sphinx-apidoc -T -e -o api ../exasol_bucketfs_utils_python; + sphinx-build -b html -W . .build-docu """ } open-html-doc = { shell = """ cd "$(git rev-parse --show-toplevel)/doc"; - xdg-open _build/html/index.html""" } + xdg-open .build-docu/html/index.html""" } build-and-open-html-doc = [ "build-html-doc", "open-html-doc" ] -commit-html-doc-to-github-pages-main = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-main.sh commit" } -push-html-doc-to-github-pages-main = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-main.sh push" } -commit-html-doc-to-github-pages-current = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-current.sh commit" } -push-html-doc-to-github-pages-current = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-current.sh push" } -commit-html-doc-to-github-pages-release = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-release.sh commit" } -push-html-doc-to-github-pages-release = { shell = "cd $(git rev-parse --show-toplevel)/doc; bash deploy-to-github-pages-release.sh push" } - +commit_pages_main = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "commit" --source_branch "main" --module_path "${StringArray[@]}" """ } +commit_pages_current = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "commit" --module_path "${StringArray[@]}" """ } +push_pages_main = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "push" --source_branch "main" --module_path "${StringArray[@]}" """ } +push_pages_current = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "push" --module_path "${StringArray[@]}" """ } +push_pages_release = { shell = """cd "$(git rev-parse --show-toplevel)";declare -a StringArray=("../another_test_package" "../test_package" ); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "push" --module_path "${StringArray[@]}" --source_branch $(git tag --sort=committerdate | tail -1) --source_origin "tags" """ } test = "pytest tests" From e2b59dd3da34874c854c5f6574114c39840ef60b Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 27 May 2022 11:38:53 +0200 Subject: [PATCH 03/24] integrated use of sphinx-github-pages-generator --- .gitignore | 1 + doc/Makefile | 30 --- doc/api/exasol_bucketfs_utils_python.rst | 25 -- doc/conf.py | 7 +- doc/deploy-to-github-pages.sh | 0 .../building_documentation.rst | 58 ++-- doc/scripts/commit_pages_current.sh | 7 + doc/scripts/commit_pages_main.sh | 8 + doc/scripts/push_pages_current.sh | 6 + doc/scripts/push_pages_main.sh | 7 + doc/scripts/push_pages_release.sh | 10 + poetry.lock | 249 ++++++++++++------ pyproject.toml | 15 +- 13 files changed, 246 insertions(+), 177 deletions(-) delete mode 100644 doc/Makefile delete mode 100644 doc/api/exasol_bucketfs_utils_python.rst delete mode 100755 doc/deploy-to-github-pages.sh create mode 100644 doc/scripts/commit_pages_current.sh create mode 100644 doc/scripts/commit_pages_main.sh create mode 100644 doc/scripts/push_pages_current.sh create mode 100644 doc/scripts/push_pages_main.sh create mode 100644 doc/scripts/push_pages_release.sh diff --git a/.gitignore b/.gitignore index d5fffc9e..d3b38246 100644 --- a/.gitignore +++ b/.gitignore @@ -136,6 +136,7 @@ poetry.lock # Sphinx doc/_build +doc/.build-docu doc/api # Language container diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 2fc37c4c..00000000 --- a/doc/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SPHINXAPIDOC ?= sphinx-apidoc -SOURCEDIR = . -BUILDDIR = _build -MODULES_PATH = ../exasol_bucketfs_utils_python -APIDOC_OUTPUT = api - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -api-doc: - @$(SPHINXAPIDOC) -T -d 1 --separate -o "$(APIDOC_OUTPUT)" "$(MODULES_PATH)" - -clean-build: - [ ! -e "$(BUILDDIR)" ] || rm -r "$(BUILDDIR)" - [ ! -e "$(APIDOC_OUTPUT)" ] || rm -r "$(APIDOC_OUTPUT)" - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile api-doc - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/api/exasol_bucketfs_utils_python.rst b/doc/api/exasol_bucketfs_utils_python.rst deleted file mode 100644 index 10f5c468..00000000 --- a/doc/api/exasol_bucketfs_utils_python.rst +++ /dev/null @@ -1,25 +0,0 @@ -exasol\_bucketfs\_utils\_python package -======================================= - -Submodules ----------- - -.. toctree:: - :maxdepth: 1 - - exasol_bucketfs_utils_python.bucket_config - exasol_bucketfs_utils_python.bucketfs_config - exasol_bucketfs_utils_python.bucketfs_connection_config - exasol_bucketfs_utils_python.bucketfs_utils - exasol_bucketfs_utils_python.download - exasol_bucketfs_utils_python.github_release_file_bucketfs_uploader - exasol_bucketfs_utils_python.release_link_extractor - exasol_bucketfs_utils_python.upload - -Module contents ---------------- - -.. automodule:: exasol_bucketfs_utils_python - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/conf.py b/doc/conf.py index cdc8aad2..4bc5954a 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -10,9 +10,10 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -# import os -# import sys +import os +import sys # sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath('../')) # -- Project information ----------------------------------------------------- @@ -52,7 +53,7 @@ # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', '.build-docu'] # -- Options for HTML output ------------------------------------------------- diff --git a/doc/deploy-to-github-pages.sh b/doc/deploy-to-github-pages.sh deleted file mode 100755 index e69de29b..00000000 diff --git a/doc/developer_guide/building_documentation.rst b/doc/developer_guide/building_documentation.rst index 564a305b..45a1b936 100644 --- a/doc/developer_guide/building_documentation.rst +++ b/doc/developer_guide/building_documentation.rst @@ -2,14 +2,15 @@ Building the Documentation ************************** -We are using Sphinx for generating the documentation of this project, -because it is the default documentation tool for Python projects. -Sphinx supports API documentation generation for Python and with plugins also for other languages. -Furthermore, it supports reStructuredText with proper cross-document references. -We using the MyST-Parser to also integrate markdown files into the documentation. +We are using the `Sphinx-GitHub_Pages_Generator `_ +for generating the documentation of this project. It uses Sphinx and Git to make automation of building and providing +the documentation easier. Sphinx is the default documentation tool for Python projects, +and supports reStructuredText with proper cross-document references. + + ###################################################### -Building the Documentation interactivily during coding +Building the Documentation interactively during coding ###################################################### We defined several commands in the project.toml in poethepoet @@ -19,9 +20,8 @@ which allow you to build and view the documentation during coding:: poetry run poe open-html-doc # Opens the currently build documentation in the browser poetry run poe build-and-open-html-doc # Builds and opens the documentation -All three build commands use the generated documentation located in /doc/_build/ -which is excluded in gitignore. If you want to build the documentation for other formats than HTML, -you find a Makefile in /doc which allows you to run the sphinx build with other goals. +All three build commands generate the documentation into /doc/.build-docu +which is excluded in gitignore. #################################### Building the Documentation in the CI @@ -31,30 +31,26 @@ Building the documentation in the CI is a bit different to the steps you can use because it also contains the preparations for publishing. At the moment, we publish the documentation on Github Pages. -To publish it there, we need to build the HTML from the documentation source and commit it. -However, Github Pages expects a specific directory structure to find the HTML. -Our usual directory structure doesn't fit these requirements, so we decided to create -a new Git root commit and initially set github-pages/main branch to this commit. -We then add new commits to this branch to update existing or add new versions of the documentation. +To publish it there, we need to build the HTML from the documentation source and commit it, as well as make sure we +adhere to the file structure expected by GitHub Pages.This is done using the +`Sphinx-GitHub_Pages_Generator `_ This has the additional benefit, that we don't have automatic commits to the source branch. -For each branch or tag for which we build the documentation in the CI -we add a directory to the root directory of the github-pages/main branch. +For each branch or tag for which we build the documentation in the CI, a directory is added to the root +directory of the github-pages/main branch. With each merge into the main branch the CI updates the documentation for the main branch in github-pages/main. -For feature branches the CI checks this deployment process by creating a branch github-pages/. -but it removes the branch directly after pushing it. However, you can run this also locally for testing purposes or -checking the branch with Github Pages in a fork of the main repostory. -The scripts which are responsible for the deployment are:: - - deploy-to-github-pages-current # creates or updates github-pages/ - deploy-to-github-pages-main.sh # only applicable for the main branch and creates or updates github-pages/main - - -We also provide a few shortcuts defined in our project.toml for poethepoet:: - - poetry run poe commit-html-doc-to-github-pages-main # creates or updates github-pages/main locally - poetry run poe push-html-doc-to-github-pages-main # creates or updates github-pages/main and pushes it to origin - poetry run poe commit-html-doc-to-github-pages-current # creates or updates github-pages/ locally - poetry run poe push-html-doc-to-github-pages-current # creates or updates github-pages/ and pushes it to origin +For feature branches the CI checks this deployment process by creating a branch github-pages/, +but it removes the branch directly after pushing it. +On tag creation, the documentation is also build, and saved in the "tag-name" directory. This is helpfully for releases. + +You can run these tasks manually for testing purposes or +checking the branch with Github Pages in a fork of the main repository. +For this purpose, we also provide a few shortcuts defined in our project.toml for poethepoet:: + + poetry run poe commit_pages_main # creates or updates github-pages/main locally + poetry run poe push_pages_main # creates or updates github-pages/main and pushes it to origin + poetry run poe commit_pages_current # creates or updates github-pages/ locally + poetry run poe push_pages_current # creates or updates github-pages/ and pushes it to origin + poetry run poe push_pages_release # creates or updates github-pages/ and pushes it to origin diff --git a/doc/scripts/commit_pages_current.sh b/doc/scripts/commit_pages_current.sh new file mode 100644 index 00000000..12a953af --- /dev/null +++ b/doc/scripts/commit_pages_current.sh @@ -0,0 +1,7 @@ +declare -a StringArray=("../exasol-bucketfs-utils-python" ) +python3 doc/call_pages_generator.py \ + --target_branch "github-pages/"$(git branch --show-current)"" \ + --push_origin "origin" \ + --push_enabled "commit" \ + --module_path "${StringArray[@]}" + diff --git a/doc/scripts/commit_pages_main.sh b/doc/scripts/commit_pages_main.sh new file mode 100644 index 00000000..2b5466fd --- /dev/null +++ b/doc/scripts/commit_pages_main.sh @@ -0,0 +1,8 @@ +declare -a StringArray=("../exasol-bucketfs-utils-python" ) +python3 doc/call_pages_generator.py \ + --target_branch "github-pages/main" \ + --push_origin "origin" \ + --push_enabled "commit" \ + --source_branch "main" \ + --module_path "${StringArray[@]}" + diff --git a/doc/scripts/push_pages_current.sh b/doc/scripts/push_pages_current.sh new file mode 100644 index 00000000..68f1b5fb --- /dev/null +++ b/doc/scripts/push_pages_current.sh @@ -0,0 +1,6 @@ +declare -a StringArray=("../exasol-bucketfs-utils-python" ) +python3 doc/call_pages_generator.py \ + --target_branch "github-pages/"$(git branch --show-current)"" \ + --push_origin "origin" \ + --push_enabled "push" \ + --module_path "${StringArray[@]}" diff --git a/doc/scripts/push_pages_main.sh b/doc/scripts/push_pages_main.sh new file mode 100644 index 00000000..42bc22e4 --- /dev/null +++ b/doc/scripts/push_pages_main.sh @@ -0,0 +1,7 @@ +declare -a StringArray=("../exasol-bucketfs-utils-python" ) +python3 doc/call_pages_generator.py \ + --target_branch "github-pages/main" \ + --push_origin "origin" \ + --push_enabled "push" \ + --source_branch "main" \ + --module_path "${StringArray[@]}" diff --git a/doc/scripts/push_pages_release.sh b/doc/scripts/push_pages_release.sh new file mode 100644 index 00000000..a9d2e157 --- /dev/null +++ b/doc/scripts/push_pages_release.sh @@ -0,0 +1,10 @@ +declare -a StringArray=("../exasol-bucketfs-utils-python" ) +python3 doc/call_pages_generator.py \ + --target_branch "github-pages/main" \ + --push_origin "origin" \ + --push_enabled "push" \ + --module_path "${StringArray[@]}" \ + --source_branch $(git tag --sort=committerdate | tail -1) \ + --source_origin "tags" + + diff --git a/poetry.lock b/poetry.lock index c5fc2649..d8e4af83 100644 --- a/poetry.lock +++ b/poetry.lock @@ -39,13 +39,28 @@ python-versions = ">=3.6" [package.dependencies] pytz = ">=2015.7" +[[package]] +name = "beautifulsoup4" +version = "4.11.1" +description = "Screen-scraping library" +category = "dev" +optional = false +python-versions = ">=3.6.0" + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + [[package]] name = "certifi" -version = "2021.10.8" +version = "2022.5.18.1" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false -python-versions = "*" +python-versions = ">=3.6" [[package]] name = "cffi" @@ -79,14 +94,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "coverage" -version = "6.3.2" +version = "6.4" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] -tomli = {version = "*", optional = true, markers = "extra == \"toml\""} +tomli = {version = "*", optional = true, markers = "python_version < \"3.11\" and extra == \"toml\""} [package.extras] toml = ["tomli"] @@ -112,11 +127,11 @@ test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", [[package]] name = "dill" -version = "0.3.4" +version = "0.3.5.1" description = "serialize all of python" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" [package.extras] graph = ["objgraph (>=1.7.2)"] @@ -129,6 +144,29 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +[[package]] +name = "exasol-sphinx-github-pages-generator" +version = "0.1.0" +description = "Generates Sphinx GitHub pages for a given Git Repository" +category = "dev" +optional = false +python-versions = ">=3.8,<4.0" +develop = false + +[package.dependencies] +furo = "^2022.02.14.1" +importlib_resources = "^1.3" +Jinja2 = "^3.0.3" +myst-parser = "^0.17.0" +poethepoet = "^0.13.0" +Sphinx = "^4.5" + +[package.source] +type = "git" +url = "https://github.com/exasol/sphinx-github-pages-generator.git" +reference = "main" +resolved_reference = "ac8384c1c1828d68d44d87cdda990a2d9f02f30c" + [[package]] name = "exasol-udf-mock-python" version = "0.1.0" @@ -147,7 +185,20 @@ pandas = "^1.4" type = "git" url = "https://github.com/exasol/udf-mock-python.git" reference = "master" -resolved_reference = "903595f1bc8ef31813fc397742cede8c63563e47" +resolved_reference = "cc05efc1ce0f3e7a300f5d410d948024b1c70dac" + +[[package]] +name = "furo" +version = "2022.4.7" +description = "A clean customisable Sphinx documentation theme." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +beautifulsoup4 = "*" +pygments = ">=2.7,<3.0" +sphinx = ">=4.0,<5.0" [[package]] name = "gitdb" @@ -189,7 +240,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "importlib-metadata" -version = "4.11.3" +version = "4.11.4" description = "Read metadata from Python packages" category = "dev" optional = false @@ -203,6 +254,17 @@ docs = ["sphinx", "jaraco.packaging (>=9)", "rst.linker (>=1.9)"] perf = ["ipython"] testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "importlib-resources (>=1.3)"] +[[package]] +name = "importlib-resources" +version = "1.5.0" +description = "Read resources from Python packages" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.extras] +docs = ["sphinx", "rst.linker", "jaraco.packaging"] + [[package]] name = "iniconfig" version = "1.1.1" @@ -311,7 +373,7 @@ testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest [[package]] name = "numpy" -version = "1.22.3" +version = "1.22.4" description = "NumPy is the fundamental package for array computing with Python." category = "dev" optional = false @@ -453,7 +515,7 @@ test = ["flaky", "pretend", "pytest (>=3.0.1)"] [[package]] name = "pyparsing" -version = "3.0.8" +version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" category = "dev" optional = false @@ -578,6 +640,14 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "soupsieve" +version = "2.3.2.post1" +description = "A modern CSS selector implementation for Beautiful Soup." +category = "dev" +optional = false +python-versions = ">=3.6" + [[package]] name = "sphinx" version = "4.5.0" @@ -758,7 +828,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = ">=3.8,<4.0" -content-hash = "7b0a1be9adb21c1194d0c66f3f306728f89d4668b33d6a952aec02063469cf24" +content-hash = "8a082bff175921d7bb0335ca34bf81748ba26d596f027d309e082b615d220dc6" [metadata.files] alabaster = [ @@ -777,9 +847,13 @@ babel = [ {file = "Babel-2.10.1-py3-none-any.whl", hash = "sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2"}, {file = "Babel-2.10.1.tar.gz", hash = "sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"}, ] +beautifulsoup4 = [ + {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, + {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, +] certifi = [ - {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, - {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, + {file = "certifi-2022.5.18.1-py3-none-any.whl", hash = "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"}, + {file = "certifi-2022.5.18.1.tar.gz", hash = "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7"}, ] cffi = [ {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"}, @@ -842,47 +916,47 @@ colorama = [ {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, ] coverage = [ - {file = "coverage-6.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9b27d894748475fa858f9597c0ee1d4829f44683f3813633aaf94b19cb5453cf"}, - {file = "coverage-6.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:37d1141ad6b2466a7b53a22e08fe76994c2d35a5b6b469590424a9953155afac"}, - {file = "coverage-6.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9987b0354b06d4df0f4d3e0ec1ae76d7ce7cbca9a2f98c25041eb79eec766f1"}, - {file = "coverage-6.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:26e2deacd414fc2f97dd9f7676ee3eaecd299ca751412d89f40bc01557a6b1b4"}, - {file = "coverage-6.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4dd8bafa458b5c7d061540f1ee9f18025a68e2d8471b3e858a9dad47c8d41903"}, - {file = "coverage-6.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:46191097ebc381fbf89bdce207a6c107ac4ec0890d8d20f3360345ff5976155c"}, - {file = "coverage-6.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6f89d05e028d274ce4fa1a86887b071ae1755082ef94a6740238cd7a8178804f"}, - {file = "coverage-6.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:58303469e9a272b4abdb9e302a780072c0633cdcc0165db7eec0f9e32f901e05"}, - {file = "coverage-6.3.2-cp310-cp310-win32.whl", hash = "sha256:2fea046bfb455510e05be95e879f0e768d45c10c11509e20e06d8fcaa31d9e39"}, - {file = "coverage-6.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:a2a8b8bcc399edb4347a5ca8b9b87e7524c0967b335fbb08a83c8421489ddee1"}, - {file = "coverage-6.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f1555ea6d6da108e1999b2463ea1003fe03f29213e459145e70edbaf3e004aaa"}, - {file = "coverage-6.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5f4e1edcf57ce94e5475fe09e5afa3e3145081318e5fd1a43a6b4539a97e518"}, - {file = "coverage-6.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a15dc0a14008f1da3d1ebd44bdda3e357dbabdf5a0b5034d38fcde0b5c234b7"}, - {file = "coverage-6.3.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21b7745788866028adeb1e0eca3bf1101109e2dc58456cb49d2d9b99a8c516e6"}, - {file = "coverage-6.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8ce257cac556cb03be4a248d92ed36904a59a4a5ff55a994e92214cde15c5bad"}, - {file = "coverage-6.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b0be84e5a6209858a1d3e8d1806c46214e867ce1b0fd32e4ea03f4bd8b2e3359"}, - {file = "coverage-6.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:acf53bc2cf7282ab9b8ba346746afe703474004d9e566ad164c91a7a59f188a4"}, - {file = "coverage-6.3.2-cp37-cp37m-win32.whl", hash = "sha256:8bdde1177f2311ee552f47ae6e5aa7750c0e3291ca6b75f71f7ffe1f1dab3dca"}, - {file = "coverage-6.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b31651d018b23ec463e95cf10070d0b2c548aa950a03d0b559eaa11c7e5a6fa3"}, - {file = "coverage-6.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:07e6db90cd9686c767dcc593dff16c8c09f9814f5e9c51034066cad3373b914d"}, - {file = "coverage-6.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c6dbb42f3ad25760010c45191e9757e7dce981cbfb90e42feef301d71540059"}, - {file = "coverage-6.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c76aeef1b95aff3905fb2ae2d96e319caca5b76fa41d3470b19d4e4a3a313512"}, - {file = "coverage-6.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cf5cfcb1521dc3255d845d9dca3ff204b3229401994ef8d1984b32746bb45ca"}, - {file = "coverage-6.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fbbdc8d55990eac1b0919ca69eb5a988a802b854488c34b8f37f3e2025fa90d"}, - {file = "coverage-6.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ec6bc7fe73a938933d4178c9b23c4e0568e43e220aef9472c4f6044bfc6dd0f0"}, - {file = "coverage-6.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:9baff2a45ae1f17c8078452e9e5962e518eab705e50a0aa8083733ea7d45f3a6"}, - {file = "coverage-6.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd9e830e9d8d89b20ab1e5af09b32d33e1a08ef4c4e14411e559556fd788e6b2"}, - {file = "coverage-6.3.2-cp38-cp38-win32.whl", hash = "sha256:f7331dbf301b7289013175087636bbaf5b2405e57259dd2c42fdcc9fcc47325e"}, - {file = "coverage-6.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:68353fe7cdf91f109fc7d474461b46e7f1f14e533e911a2a2cbb8b0fc8613cf1"}, - {file = "coverage-6.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b78e5afb39941572209f71866aa0b206c12f0109835aa0d601e41552f9b3e620"}, - {file = "coverage-6.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4e21876082ed887baed0146fe222f861b5815455ada3b33b890f4105d806128d"}, - {file = "coverage-6.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34626a7eee2a3da12af0507780bb51eb52dca0e1751fd1471d0810539cefb536"}, - {file = "coverage-6.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1ebf730d2381158ecf3dfd4453fbca0613e16eaa547b4170e2450c9707665ce7"}, - {file = "coverage-6.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd6fe30bd519694b356cbfcaca9bd5c1737cddd20778c6a581ae20dc8c04def2"}, - {file = "coverage-6.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:96f8a1cb43ca1422f36492bebe63312d396491a9165ed3b9231e778d43a7fca4"}, - {file = "coverage-6.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:dd035edafefee4d573140a76fdc785dc38829fe5a455c4bb12bac8c20cfc3d69"}, - {file = "coverage-6.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5ca5aeb4344b30d0bec47481536b8ba1181d50dbe783b0e4ad03c95dc1296684"}, - {file = "coverage-6.3.2-cp39-cp39-win32.whl", hash = "sha256:f5fa5803f47e095d7ad8443d28b01d48c0359484fec1b9d8606d0e3282084bc4"}, - {file = "coverage-6.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:9548f10d8be799551eb3a9c74bbf2b4934ddb330e08a73320123c07f95cc2d92"}, - {file = "coverage-6.3.2-pp36.pp37.pp38-none-any.whl", hash = "sha256:18d520c6860515a771708937d2f78f63cc47ab3b80cb78e86573b0a760161faf"}, - {file = "coverage-6.3.2.tar.gz", hash = "sha256:03e2a7826086b91ef345ff18742ee9fc47a6839ccd517061ef8fa1976e652ce9"}, + {file = "coverage-6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50ed480b798febce113709846b11f5d5ed1e529c88d8ae92f707806c50297abf"}, + {file = "coverage-6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26f8f92699756cb7af2b30720de0c5bb8d028e923a95b6d0c891088025a1ac8f"}, + {file = "coverage-6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60c2147921da7f4d2d04f570e1838db32b95c5509d248f3fe6417e91437eaf41"}, + {file = "coverage-6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:750e13834b597eeb8ae6e72aa58d1d831b96beec5ad1d04479ae3772373a8088"}, + {file = "coverage-6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af5b9ee0fc146e907aa0f5fb858c3b3da9199d78b7bb2c9973d95550bd40f701"}, + {file = "coverage-6.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a022394996419142b33a0cf7274cb444c01d2bb123727c4bb0b9acabcb515dea"}, + {file = "coverage-6.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5a78cf2c43b13aa6b56003707c5203f28585944c277c1f3f109c7b041b16bd39"}, + {file = "coverage-6.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9229d074e097f21dfe0643d9d0140ee7433814b3f0fc3706b4abffd1e3038632"}, + {file = "coverage-6.4-cp310-cp310-win32.whl", hash = "sha256:fb45fe08e1abc64eb836d187b20a59172053999823f7f6ef4f18a819c44ba16f"}, + {file = "coverage-6.4-cp310-cp310-win_amd64.whl", hash = "sha256:3cfd07c5889ddb96a401449109a8b97a165be9d67077df6802f59708bfb07720"}, + {file = "coverage-6.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:03014a74023abaf5a591eeeaf1ac66a73d54eba178ff4cb1fa0c0a44aae70383"}, + {file = "coverage-6.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c82f2cd69c71698152e943f4a5a6b83a3ab1db73b88f6e769fabc86074c3b08"}, + {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b546cf2b1974ddc2cb222a109b37c6ed1778b9be7e6b0c0bc0cf0438d9e45a6"}, + {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc173f1ce9ffb16b299f51c9ce53f66a62f4d975abe5640e976904066f3c835d"}, + {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c53ad261dfc8695062fc8811ac7c162bd6096a05a19f26097f411bdf5747aee7"}, + {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:eef5292b60b6de753d6e7f2d128d5841c7915fb1e3321c3a1fe6acfe76c38052"}, + {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:543e172ce4c0de533fa892034cce260467b213c0ea8e39da2f65f9a477425211"}, + {file = "coverage-6.4-cp37-cp37m-win32.whl", hash = "sha256:00c8544510f3c98476bbd58201ac2b150ffbcce46a8c3e4fb89ebf01998f806a"}, + {file = "coverage-6.4-cp37-cp37m-win_amd64.whl", hash = "sha256:b84ab65444dcc68d761e95d4d70f3cfd347ceca5a029f2ffec37d4f124f61311"}, + {file = "coverage-6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d548edacbf16a8276af13063a2b0669d58bbcfca7c55a255f84aac2870786a61"}, + {file = "coverage-6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:033ebec282793bd9eb988d0271c211e58442c31077976c19c442e24d827d356f"}, + {file = "coverage-6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:742fb8b43835078dd7496c3c25a1ec8d15351df49fb0037bffb4754291ef30ce"}, + {file = "coverage-6.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d55fae115ef9f67934e9f1103c9ba826b4c690e4c5bcf94482b8b2398311bf9c"}, + {file = "coverage-6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd698341626f3c77784858427bad0cdd54a713115b423d22ac83a28303d1d95"}, + {file = "coverage-6.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:62d382f7d77eeeaff14b30516b17bcbe80f645f5cf02bb755baac376591c653c"}, + {file = "coverage-6.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:016d7f5cf1c8c84f533a3c1f8f36126fbe00b2ec0ccca47cc5731c3723d327c6"}, + {file = "coverage-6.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:69432946f154c6add0e9ede03cc43b96e2ef2733110a77444823c053b1ff5166"}, + {file = "coverage-6.4-cp38-cp38-win32.whl", hash = "sha256:83bd142cdec5e4a5c4ca1d4ff6fa807d28460f9db919f9f6a31babaaa8b88426"}, + {file = "coverage-6.4-cp38-cp38-win_amd64.whl", hash = "sha256:4002f9e8c1f286e986fe96ec58742b93484195defc01d5cc7809b8f7acb5ece3"}, + {file = "coverage-6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e4f52c272fdc82e7c65ff3f17a7179bc5f710ebc8ce8a5cadac81215e8326740"}, + {file = "coverage-6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b5578efe4038be02d76c344007b13119b2b20acd009a88dde8adec2de4f630b5"}, + {file = "coverage-6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8099ea680201c2221f8468c372198ceba9338a5fec0e940111962b03b3f716a"}, + {file = "coverage-6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a00441f5ea4504f5abbc047589d09e0dc33eb447dc45a1a527c8b74bfdd32c65"}, + {file = "coverage-6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e76bd16f0e31bc2b07e0fb1379551fcd40daf8cdf7e24f31a29e442878a827c"}, + {file = "coverage-6.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8d2e80dd3438e93b19e1223a9850fa65425e77f2607a364b6fd134fcd52dc9df"}, + {file = "coverage-6.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:341e9c2008c481c5c72d0e0dbf64980a4b2238631a7f9780b0fe2e95755fb018"}, + {file = "coverage-6.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:21e6686a95025927775ac501e74f5940cdf6fe052292f3a3f7349b0abae6d00f"}, + {file = "coverage-6.4-cp39-cp39-win32.whl", hash = "sha256:968ed5407f9460bd5a591cefd1388cc00a8f5099de9e76234655ae48cfdbe2c3"}, + {file = "coverage-6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e35217031e4b534b09f9b9a5841b9344a30a6357627761d4218818b865d45055"}, + {file = "coverage-6.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:e637ae0b7b481905358624ef2e81d7fb0b1af55f5ff99f9ba05442a444b11e45"}, + {file = "coverage-6.4.tar.gz", hash = "sha256:727dafd7f67a6e1cad808dc884bd9c5a2f6ef1f8f6d2f22b37b96cb0080d4f49"}, ] cryptography = [ {file = "cryptography-37.0.2-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181"}, @@ -909,14 +983,19 @@ cryptography = [ {file = "cryptography-37.0.2.tar.gz", hash = "sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e"}, ] dill = [ - {file = "dill-0.3.4-py2.py3-none-any.whl", hash = "sha256:7e40e4a70304fd9ceab3535d36e58791d9c4a776b38ec7f7ec9afc8d3dca4d4f"}, - {file = "dill-0.3.4.zip", hash = "sha256:9f9734205146b2b353ab3fec9af0070237b6ddae78452af83d2fca84d739e675"}, + {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, + {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, ] docutils = [ {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, ] +exasol-sphinx-github-pages-generator = [] exasol-udf-mock-python = [] +furo = [ + {file = "furo-2022.4.7-py3-none-any.whl", hash = "sha256:7f3e3d2fb977483590f8ecb2c2cd511bd82661b79c18efb24de9558bc9cdf2d7"}, + {file = "furo-2022.4.7.tar.gz", hash = "sha256:96204ab7cd047e4b6c523996e0279c4c629a8fc31f4f109b2efd470c17f49c80"}, +] gitdb = [ {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, {file = "gitdb-4.0.9.tar.gz", hash = "sha256:bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa"}, @@ -934,8 +1013,12 @@ imagesize = [ {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"}, ] importlib-metadata = [ - {file = "importlib_metadata-4.11.3-py3-none-any.whl", hash = "sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6"}, - {file = "importlib_metadata-4.11.3.tar.gz", hash = "sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539"}, + {file = "importlib_metadata-4.11.4-py3-none-any.whl", hash = "sha256:c58c8eb8a762858f49e18436ff552e83914778e50e9d2f1660535ffb364552ec"}, + {file = "importlib_metadata-4.11.4.tar.gz", hash = "sha256:5d26852efe48c0a32b0509ffbc583fda1a2266545a78d104a6f4aff3db17d700"}, +] +importlib-resources = [ + {file = "importlib_resources-1.5.0-py2.py3-none-any.whl", hash = "sha256:85dc0b9b325ff78c8bef2e4ff42616094e16b98ebd5e3b50fe7e2f0bbcdcde49"}, + {file = "importlib_resources-1.5.0.tar.gz", hash = "sha256:6f87df66833e1942667108628ec48900e02a4ab4ad850e25fbf07cb17cf734ca"}, ] iniconfig = [ {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, @@ -1008,26 +1091,28 @@ myst-parser = [ {file = "myst_parser-0.17.2-py3-none-any.whl", hash = "sha256:1635ce3c18965a528d6de980f989ff64d6a1effb482e1f611b1bfb79e38f3d98"}, ] numpy = [ - {file = "numpy-1.22.3-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:92bfa69cfbdf7dfc3040978ad09a48091143cffb778ec3b03fa170c494118d75"}, - {file = "numpy-1.22.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8251ed96f38b47b4295b1ae51631de7ffa8260b5b087808ef09a39a9d66c97ab"}, - {file = "numpy-1.22.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48a3aecd3b997bf452a2dedb11f4e79bc5bfd21a1d4cc760e703c31d57c84b3e"}, - {file = "numpy-1.22.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3bae1a2ed00e90b3ba5f7bd0a7c7999b55d609e0c54ceb2b076a25e345fa9f4"}, - {file = "numpy-1.22.3-cp310-cp310-win32.whl", hash = "sha256:f950f8845b480cffe522913d35567e29dd381b0dc7e4ce6a4a9f9156417d2430"}, - {file = "numpy-1.22.3-cp310-cp310-win_amd64.whl", hash = "sha256:08d9b008d0156c70dc392bb3ab3abb6e7a711383c3247b410b39962263576cd4"}, - {file = "numpy-1.22.3-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:201b4d0552831f7250a08d3b38de0d989d6f6e4658b709a02a73c524ccc6ffce"}, - {file = "numpy-1.22.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f8c1f39caad2c896bc0018f699882b345b2a63708008be29b1f355ebf6f933fe"}, - {file = "numpy-1.22.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:568dfd16224abddafb1cbcce2ff14f522abe037268514dd7e42c6776a1c3f8e5"}, - {file = "numpy-1.22.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ca688e1b9b95d80250bca34b11a05e389b1420d00e87a0d12dc45f131f704a1"}, - {file = "numpy-1.22.3-cp38-cp38-win32.whl", hash = "sha256:e7927a589df200c5e23c57970bafbd0cd322459aa7b1ff73b7c2e84d6e3eae62"}, - {file = "numpy-1.22.3-cp38-cp38-win_amd64.whl", hash = "sha256:07a8c89a04997625236c5ecb7afe35a02af3896c8aa01890a849913a2309c676"}, - {file = "numpy-1.22.3-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:2c10a93606e0b4b95c9b04b77dc349b398fdfbda382d2a39ba5a822f669a0123"}, - {file = "numpy-1.22.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fade0d4f4d292b6f39951b6836d7a3c7ef5b2347f3c420cd9820a1d90d794802"}, - {file = "numpy-1.22.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bfb1bb598e8229c2d5d48db1860bcf4311337864ea3efdbe1171fb0c5da515d"}, - {file = "numpy-1.22.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97098b95aa4e418529099c26558eeb8486e66bd1e53a6b606d684d0c3616b168"}, - {file = "numpy-1.22.3-cp39-cp39-win32.whl", hash = "sha256:fdf3c08bce27132395d3c3ba1503cac12e17282358cb4bddc25cc46b0aca07aa"}, - {file = "numpy-1.22.3-cp39-cp39-win_amd64.whl", hash = "sha256:639b54cdf6aa4f82fe37ebf70401bbb74b8508fddcf4797f9fe59615b8c5813a"}, - {file = "numpy-1.22.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c34ea7e9d13a70bf2ab64a2532fe149a9aced424cd05a2c4ba662fd989e3e45f"}, - {file = "numpy-1.22.3.zip", hash = "sha256:dbc7601a3b7472d559dc7b933b18b4b66f9aa7452c120e87dfb33d02008c8a18"}, + {file = "numpy-1.22.4-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:ba9ead61dfb5d971d77b6c131a9dbee62294a932bf6a356e48c75ae684e635b3"}, + {file = "numpy-1.22.4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1ce7ab2053e36c0a71e7a13a7475bd3b1f54750b4b433adc96313e127b870887"}, + {file = "numpy-1.22.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7228ad13744f63575b3a972d7ee4fd61815b2879998e70930d4ccf9ec721dce0"}, + {file = "numpy-1.22.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43a8ca7391b626b4c4fe20aefe79fec683279e31e7c79716863b4b25021e0e74"}, + {file = "numpy-1.22.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a911e317e8c826ea632205e63ed8507e0dc877dcdc49744584dfc363df9ca08c"}, + {file = "numpy-1.22.4-cp310-cp310-win32.whl", hash = "sha256:9ce7df0abeabe7fbd8ccbf343dc0db72f68549856b863ae3dd580255d009648e"}, + {file = "numpy-1.22.4-cp310-cp310-win_amd64.whl", hash = "sha256:3e1ffa4748168e1cc8d3cde93f006fe92b5421396221a02f2274aab6ac83b077"}, + {file = "numpy-1.22.4-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:59d55e634968b8f77d3fd674a3cf0b96e85147cd6556ec64ade018f27e9479e1"}, + {file = "numpy-1.22.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c1d937820db6e43bec43e8d016b9b3165dcb42892ea9f106c70fb13d430ffe72"}, + {file = "numpy-1.22.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4c5d5eb2ec8da0b4f50c9a843393971f31f1d60be87e0fb0917a49133d257d6"}, + {file = "numpy-1.22.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64f56fc53a2d18b1924abd15745e30d82a5782b2cab3429aceecc6875bd5add0"}, + {file = "numpy-1.22.4-cp38-cp38-win32.whl", hash = "sha256:fb7a980c81dd932381f8228a426df8aeb70d59bbcda2af075b627bbc50207cba"}, + {file = "numpy-1.22.4-cp38-cp38-win_amd64.whl", hash = "sha256:e96d7f3096a36c8754207ab89d4b3282ba7b49ea140e4973591852c77d09eb76"}, + {file = "numpy-1.22.4-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:4c6036521f11a731ce0648f10c18ae66d7143865f19f7299943c985cdc95afb5"}, + {file = "numpy-1.22.4-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b89bf9b94b3d624e7bb480344e91f68c1c6c75f026ed6755955117de00917a7c"}, + {file = "numpy-1.22.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2d487e06ecbf1dc2f18e7efce82ded4f705f4bd0cd02677ffccfb39e5c284c7e"}, + {file = "numpy-1.22.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3eb268dbd5cfaffd9448113539e44e2dd1c5ca9ce25576f7c04a5453edc26fa"}, + {file = "numpy-1.22.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37431a77ceb9307c28382c9773da9f306435135fae6b80b62a11c53cfedd8802"}, + {file = "numpy-1.22.4-cp39-cp39-win32.whl", hash = "sha256:cc7f00008eb7d3f2489fca6f334ec19ca63e31371be28fd5dad955b16ec285bd"}, + {file = "numpy-1.22.4-cp39-cp39-win_amd64.whl", hash = "sha256:f0725df166cf4785c0bc4cbfb320203182b1ecd30fee6e541c8752a92df6aa32"}, + {file = "numpy-1.22.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0791fbd1e43bf74b3502133207e378901272f3c156c4df4954cad833b1380207"}, + {file = "numpy-1.22.4.zip", hash = "sha256:425b390e4619f58d8526b3dcf656dde069133ae5c240229821f01b5f44ea07af"}, ] packaging = [ {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, @@ -1104,8 +1189,8 @@ pyopenssl = [ {file = "pyOpenSSL-22.0.0.tar.gz", hash = "sha256:660b1b1425aac4a1bea1d94168a85d99f0b3144c869dd4390d27629d0087f1bf"}, ] pyparsing = [ - {file = "pyparsing-3.0.8-py3-none-any.whl", hash = "sha256:ef7b523f6356f763771559412c0d7134753f037822dad1b16945b7b846f7ad06"}, - {file = "pyparsing-3.0.8.tar.gz", hash = "sha256:7bf433498c016c4314268d95df76c81b842a4cb2b276fa3312cfb1e1d85f6954"}, + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, ] pytest = [ {file = "pytest-7.1.2-py3-none-any.whl", hash = "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c"}, @@ -1178,6 +1263,10 @@ snowballstemmer = [ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, ] +soupsieve = [ + {file = "soupsieve-2.3.2.post1-py3-none-any.whl", hash = "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759"}, + {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, +] sphinx = [ {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, diff --git a/pyproject.toml b/pyproject.toml index ac4f9ee7..e72ba3eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ myst-parser = "^0.17.0" pyexasol = "^0.24.0" dill = "^0.3.4" exasol-udf-mock-python = { git = "https://github.com/exasol/udf-mock-python.git", branch = "master" } -exasol-sphinx-github-pages-generator = { git = "https://github.com/exasol/sphinx-github-pages-generator.git", branch = "feature/20-add-action-for-release-docu" } +exasol-sphinx-github-pages-generator = { git = "https://github.com/exasol/sphinx-github-pages-generator.git", branch = "main" } gitpython = ">=2.1.0" toml = ">=0.10.2" @@ -45,13 +45,12 @@ build-html-doc = {shell = """ """ } open-html-doc = { shell = """ cd "$(git rev-parse --show-toplevel)/doc"; - xdg-open .build-docu/html/index.html""" } + xdg-open .build-docu/index.html""" } build-and-open-html-doc = [ "build-html-doc", "open-html-doc" ] -commit_pages_main = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "commit" --source_branch "main" --module_path "${StringArray[@]}" """ } -commit_pages_current = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "commit" --module_path "${StringArray[@]}" """ } -push_pages_main = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "push" --source_branch "main" --module_path "${StringArray[@]}" """ } -push_pages_current = { shell = """cd $(git rev-parse --show-toplevel);declare -a StringArray=("../another_test_package" "../test_package"); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "push" --module_path "${StringArray[@]}" """ } -push_pages_release = { shell = """cd "$(git rev-parse --show-toplevel)";declare -a StringArray=("../another_test_package" "../test_package" ); python3 doc/call_pages_generator.py --target_branch "github-pages/main" --push_origin "origin" --push_enabled "push" --module_path "${StringArray[@]}" --source_branch $(git tag --sort=committerdate | tail -1) --source_origin "tags" """ } - +commit_pages_main = { shell = """cd $(git rev-parse --show-toplevel); bash ./doc/scripts/commit_pages_main.sh """ } +commit_pages_current = { shell = """cd "$(git rev-parse --show-toplevel)"; bash ./doc/scripts/commit_pages_current.sh """ } +push_pages_main = { shell = """cd $(git rev-parse --show-toplevel); bash ./doc/scripts/push_pages_main.sh """ } +push_pages_current = { shell = """cd $(git rev-parse --show-toplevel); bash ./doc/scripts/push_pages_current.sh """ } +push_pages_release = { shell = """cd "$(git rev-parse --show-toplevel)"; bash ./doc/scripts/push_pages_main.sh """ } test = "pytest tests" From 1a786b95e667f004be316a2f5e5403de36af71a4 Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 27 May 2022 13:37:02 +0200 Subject: [PATCH 04/24] fix example in docu --- doc/developer_guide/building_documentation.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/developer_guide/building_documentation.rst b/doc/developer_guide/building_documentation.rst index 45a1b936..71308270 100644 --- a/doc/developer_guide/building_documentation.rst +++ b/doc/developer_guide/building_documentation.rst @@ -16,6 +16,8 @@ Building the Documentation interactively during coding We defined several commands in the project.toml in poethepoet which allow you to build and view the documentation during coding:: +.. code:: bash + poetry run poe build-html-doc # Builds the documentation poetry run poe open-html-doc # Opens the currently build documentation in the browser poetry run poe build-and-open-html-doc # Builds and opens the documentation @@ -48,6 +50,8 @@ You can run these tasks manually for testing purposes or checking the branch with Github Pages in a fork of the main repository. For this purpose, we also provide a few shortcuts defined in our project.toml for poethepoet:: +.. code:: bash + poetry run poe commit_pages_main # creates or updates github-pages/main locally poetry run poe push_pages_main # creates or updates github-pages/main and pushes it to origin poetry run poe commit_pages_current # creates or updates github-pages/ locally From cc916e850de57cd540fb1255d3c1e5909d5d0e6e Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Thu, 16 Jun 2022 15:35:10 +0200 Subject: [PATCH 05/24] replace poe with nox --- .../workflows/check_documentation_build.yaml | 2 +- .github/workflows/create_release_docu.yaml | 4 +- doc/call_pages_generator.py | 5 - doc/scripts/commit_pages_current.sh | 7 - doc/scripts/commit_pages_main.sh | 8 - doc/scripts/push_pages_current.sh | 6 - doc/scripts/push_pages_main.sh | 7 - doc/scripts/push_pages_release.sh | 10 - noxfile.py | 97 +++++++ poetry.lock | 270 +++++++++++++----- pyproject.toml | 21 +- 11 files changed, 306 insertions(+), 131 deletions(-) delete mode 100644 doc/call_pages_generator.py delete mode 100644 doc/scripts/commit_pages_current.sh delete mode 100644 doc/scripts/commit_pages_main.sh delete mode 100644 doc/scripts/push_pages_current.sh delete mode 100644 doc/scripts/push_pages_main.sh delete mode 100644 doc/scripts/push_pages_release.sh create mode 100644 noxfile.py diff --git a/.github/workflows/check_documentation_build.yaml b/.github/workflows/check_documentation_build.yaml index c5bdb289..45088ec4 100644 --- a/.github/workflows/check_documentation_build.yaml +++ b/.github/workflows/check_documentation_build.yaml @@ -38,4 +38,4 @@ jobs: poetry run poe push_pages_current - name: Cleanup delete target branch if: ${{ !contains(github.ref, 'main') }} - run: git push -d origin "github-pages/"$(git branch --show-current)"" \ No newline at end of file + run: git push -d origin "github-pages/"$(git branch --show-current)"" diff --git a/.github/workflows/create_release_docu.yaml b/.github/workflows/create_release_docu.yaml index cf58ac37..6a089712 100644 --- a/.github/workflows/create_release_docu.yaml +++ b/.github/workflows/create_release_docu.yaml @@ -8,8 +8,6 @@ jobs: publish-release-documentation: strategy: fail-fast: false - matrix: - python-version: [3.8] runs-on: ubuntu-latest environment: publish @@ -20,7 +18,7 @@ jobs: - name: Install python uses: actions/setup-python@v2 with: - python-version: ${{ matrix.python-version }} + python-version: 3.8 - name: Install poetry uses: abatilo/actions-poetry@v2.1.4 with: diff --git a/doc/call_pages_generator.py b/doc/call_pages_generator.py deleted file mode 100644 index ebe7a36e..00000000 --- a/doc/call_pages_generator.py +++ /dev/null @@ -1,5 +0,0 @@ -import exasol_sphinx_github_pages_generator.deploy_github_pages as deploy_github_pages -import sys - -if __name__ == "__main__": - deploy_github_pages.deploy_github_pages(sys.argv[1:]) diff --git a/doc/scripts/commit_pages_current.sh b/doc/scripts/commit_pages_current.sh deleted file mode 100644 index 12a953af..00000000 --- a/doc/scripts/commit_pages_current.sh +++ /dev/null @@ -1,7 +0,0 @@ -declare -a StringArray=("../exasol-bucketfs-utils-python" ) -python3 doc/call_pages_generator.py \ - --target_branch "github-pages/"$(git branch --show-current)"" \ - --push_origin "origin" \ - --push_enabled "commit" \ - --module_path "${StringArray[@]}" - diff --git a/doc/scripts/commit_pages_main.sh b/doc/scripts/commit_pages_main.sh deleted file mode 100644 index 2b5466fd..00000000 --- a/doc/scripts/commit_pages_main.sh +++ /dev/null @@ -1,8 +0,0 @@ -declare -a StringArray=("../exasol-bucketfs-utils-python" ) -python3 doc/call_pages_generator.py \ - --target_branch "github-pages/main" \ - --push_origin "origin" \ - --push_enabled "commit" \ - --source_branch "main" \ - --module_path "${StringArray[@]}" - diff --git a/doc/scripts/push_pages_current.sh b/doc/scripts/push_pages_current.sh deleted file mode 100644 index 68f1b5fb..00000000 --- a/doc/scripts/push_pages_current.sh +++ /dev/null @@ -1,6 +0,0 @@ -declare -a StringArray=("../exasol-bucketfs-utils-python" ) -python3 doc/call_pages_generator.py \ - --target_branch "github-pages/"$(git branch --show-current)"" \ - --push_origin "origin" \ - --push_enabled "push" \ - --module_path "${StringArray[@]}" diff --git a/doc/scripts/push_pages_main.sh b/doc/scripts/push_pages_main.sh deleted file mode 100644 index 42bc22e4..00000000 --- a/doc/scripts/push_pages_main.sh +++ /dev/null @@ -1,7 +0,0 @@ -declare -a StringArray=("../exasol-bucketfs-utils-python" ) -python3 doc/call_pages_generator.py \ - --target_branch "github-pages/main" \ - --push_origin "origin" \ - --push_enabled "push" \ - --source_branch "main" \ - --module_path "${StringArray[@]}" diff --git a/doc/scripts/push_pages_release.sh b/doc/scripts/push_pages_release.sh deleted file mode 100644 index a9d2e157..00000000 --- a/doc/scripts/push_pages_release.sh +++ /dev/null @@ -1,10 +0,0 @@ -declare -a StringArray=("../exasol-bucketfs-utils-python" ) -python3 doc/call_pages_generator.py \ - --target_branch "github-pages/main" \ - --push_origin "origin" \ - --push_enabled "push" \ - --module_path "${StringArray[@]}" \ - --source_branch $(git tag --sort=committerdate | tail -1) \ - --source_origin "tags" - - diff --git a/noxfile.py b/noxfile.py new file mode 100644 index 00000000..b7de008a --- /dev/null +++ b/noxfile.py @@ -0,0 +1,97 @@ +import nox + + +@nox.session +def build_html_doc(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + with session.chdir(BASE_PATH[:-1] + "/doc"): + session.run("sphinx-apidoc", "-T", "-e", "-o", "api", "../exasol_bucketfs_utils_python") + session.run("sphinx-build", "-b", "html", "-W", ".", ".build-docu") + + +@nox.session +def open_html_doc(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + with session.chdir(BASE_PATH[:-1] + "/doc"): + session.run("xdg-open", ".build-docu/index.html") + + +@nox.session +def build_and_open_html_doc(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + with session.chdir(BASE_PATH[:-1] + "/doc"): + session.run("sphinx-apidoc", "-T", "-e", "-o", "api", "../exasol_bucketfs_utils_python") + session.run("sphinx-build", "-b", "html", "-W", ".", ".build-docu") + session.run("xdg-open", ".build-docu/index.html") + + +@nox.session +def commit_pages_main(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + with session.chdir(BASE_PATH[:-1]): + session.run("sgpg", + "--target_branch", "github-pages/main", + "--push_origin", "origin", + "--push_enabled", "commit", + "--source_branch", "main", + "--module_path", "${StringArray[@]}", + env={"StringArray":("../exasol-bucketfs-utils-python")}) + + +@nox.session +def commit_pages_current(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + branch = session.sun("git", "branch", "--show-current", silent=True) + with session.chdir(BASE_PATH[:-1]): + session.run("sgpg", + "--target_branch", "github-pages" + branch, + "--push_origin", "origin", + "--push_enabled", "commit", + "--module_path", "${StringArray[@]}", + env={"StringArray": ("../exasol-bucketfs-utils-python")}) + + +@nox.session +def push_pages_main(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + with session.chdir(BASE_PATH[:-1]): + session.run("sgpg", + "--target_branch", "github-pages/main", + "--push_origin", "origin", + "--push_enabled", "push", + "--source_branch", "main", + "--module_path", "${StringArray[@]}", + env={"StringArray": ("../exasol-bucketfs-utils-python")}) + + +@nox.session +def push_pages_current(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + branch = session.sun("git", "branch", "--show-current", silent=True) + with session.chdir(BASE_PATH[:-1]): + session.run("sgpg", + "--target_branch", "github-pages" + branch, + "--push_origin", "origin", + "--push_enabled", "push", + "--module_path", "${StringArray[@]}", + env={"StringArray": ("../exasol-bucketfs-utils-python")}) + + +@nox.session +def push_pages_release(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + tag = session.run("git", "tag", "--sort=committerdate", "|", "tail", "-1") + with session.chdir(BASE_PATH[:-1]): + session.run("sgpg", + "--target_branch", "github-pages/main", + "--push_origin", "origin", + "--push_enabled", "push", + "--source_branch", tag, + "--source_origin", "tags", + "--module_path", "${StringArray[@]}", + env={"StringArray": ("../exasol-bucketfs-utils-python")}) + + +@nox.session +def run_tests(session): + session.run("pytest", "tests") diff --git a/poetry.lock b/poetry.lock index d8e4af83..27ca2ef9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -6,6 +6,17 @@ category = "dev" optional = false python-versions = "*" +[[package]] +name = "argcomplete" +version = "1.12.3" +description = "Bash tab completion for argparse" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +test = ["coverage", "flake8", "pexpect", "wheel"] + [[package]] name = "atomicwrites" version = "1.4.0" @@ -30,7 +41,7 @@ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (> [[package]] name = "babel" -version = "2.10.1" +version = "2.10.3" description = "Internationalization utilities" category = "dev" optional = false @@ -56,7 +67,7 @@ lxml = ["lxml"] [[package]] name = "certifi" -version = "2022.5.18.1" +version = "2022.6.15" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -92,16 +103,30 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +[[package]] +name = "colorlog" +version = "6.6.0" +description = "Add colours to the output of Python's logging module." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} + +[package.extras] +development = ["black", "flake8", "mypy", "pytest", "types-colorama"] + [[package]] name = "coverage" -version = "6.4" +version = "6.4.1" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" [package.dependencies] -tomli = {version = "*", optional = true, markers = "python_version < \"3.11\" and extra == \"toml\""} +tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] toml = ["tomli"] @@ -136,6 +161,14 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, [package.extras] graph = ["objgraph (>=1.7.2)"] +[[package]] +name = "distlib" +version = "0.3.4" +description = "Distribution utilities" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "docutils" version = "0.17.1" @@ -164,8 +197,8 @@ Sphinx = "^4.5" [package.source] type = "git" url = "https://github.com/exasol/sphinx-github-pages-generator.git" -reference = "main" -resolved_reference = "ac8384c1c1828d68d44d87cdda990a2d9f02f30c" +reference = "0.1.0" +resolved_reference = "463e4a8e47f084d383939e6825e7476369d96c53" [[package]] name = "exasol-udf-mock-python" @@ -187,18 +220,31 @@ url = "https://github.com/exasol/udf-mock-python.git" reference = "master" resolved_reference = "cc05efc1ce0f3e7a300f5d410d948024b1c70dac" +[[package]] +name = "filelock" +version = "3.7.1" +description = "A platform independent file lock." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"] +testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"] + [[package]] name = "furo" -version = "2022.4.7" +version = "2022.6.4.1" description = "A clean customisable Sphinx documentation theme." category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] beautifulsoup4 = "*" -pygments = ">=2.7,<3.0" -sphinx = ">=4.0,<5.0" +pygments = "*" +sphinx = ">=4.0,<6.0" +sphinx-basic-ng = "*" [[package]] name = "gitdb" @@ -371,6 +417,24 @@ linkify = ["linkify-it-py (>=1.0,<2.0)"] rtd = ["ipython", "sphinx-book-theme", "sphinx-panels", "sphinxcontrib-bibtex (>=2.4,<3.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)", "sphinxcontrib.mermaid (>=0.7.1,<0.8.0)", "sphinxext-opengraph (>=0.6.3,<0.7.0)"] testing = ["beautifulsoup4", "coverage", "docutils (>=0.17.0,<0.18.0)", "pytest (>=6,<7)", "pytest-cov", "pytest-regressions", "pytest-param-files (>=0.3.4,<0.4.0)"] +[[package]] +name = "nox" +version = "2022.1.7" +description = "Flexible test automation." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +argcomplete = ">=1.9.4,<2.0" +colorlog = ">=2.6.1,<7.0.0" +packaging = ">=20.9" +py = ">=1.4.0,<2.0.0" +virtualenv = ">=14.0.0" + +[package.extras] +tox_to_nox = ["jinja2", "tox"] + [[package]] name = "numpy" version = "1.22.4" @@ -419,6 +483,18 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +[[package]] +name = "platformdirs" +version = "2.5.2" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)", "sphinx (>=4)"] +test = ["appdirs (==1.4.4)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)", "pytest (>=6)"] + [[package]] name = "pluggy" version = "1.0.0" @@ -589,20 +665,20 @@ python-versions = ">=3.6" [[package]] name = "requests" -version = "2.27.1" +version = "2.28.0" description = "Python HTTP for Humans." category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = ">=3.7, <4" [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} -idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} +charset-normalizer = ">=2.0.0,<2.1.0" +idna = ">=2.5,<4" urllib3 = ">=1.21.1,<1.27" [package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] [[package]] @@ -680,6 +756,20 @@ docs = ["sphinxcontrib-websupport"] lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.931)", "docutils-stubs", "types-typed-ast", "types-requests"] test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] +[[package]] +name = "sphinx-basic-ng" +version = "0.0.1a11" +description = "A modern skeleton for Sphinx themes." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +sphinx = ">=4.0,<6.0" + +[package.extras] +docs = ["furo", "myst-parser", "sphinx-copybutton", "sphinx-inline-tabs", "ipython"] + [[package]] name = "sphinxcontrib-applehelp" version = "1.0.2" @@ -800,6 +890,24 @@ brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"] secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +[[package]] +name = "virtualenv" +version = "20.14.1" +description = "Virtual Python Environment builder" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +distlib = ">=0.3.1,<1" +filelock = ">=3.2,<4" +platformdirs = ">=2,<3" +six = ">=1.9.0,<2" + +[package.extras] +docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"] +testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"] + [[package]] name = "websocket-client" version = "1.3.2" @@ -828,13 +936,17 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = ">=3.8,<4.0" -content-hash = "8a082bff175921d7bb0335ca34bf81748ba26d596f027d309e082b615d220dc6" +content-hash = "5b10cbb1314b61aacc6aa1eb063104688781b24bd08b339414e6a4137da1adbd" [metadata.files] alabaster = [ {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, ] +argcomplete = [ + {file = "argcomplete-1.12.3-py2.py3-none-any.whl", hash = "sha256:291f0beca7fd49ce285d2f10e4c1c77e9460cf823eef2de54df0c0fec88b0d81"}, + {file = "argcomplete-1.12.3.tar.gz", hash = "sha256:2c7dbffd8c045ea534921e63b0be6fe65e88599990d8dc408ac8c542b72a5445"}, +] atomicwrites = [ {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, @@ -844,16 +956,16 @@ attrs = [ {file = "attrs-21.4.0.tar.gz", hash = "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"}, ] babel = [ - {file = "Babel-2.10.1-py3-none-any.whl", hash = "sha256:3f349e85ad3154559ac4930c3918247d319f21910d5ce4b25d439ed8693b98d2"}, - {file = "Babel-2.10.1.tar.gz", hash = "sha256:98aeaca086133efb3e1e2aad0396987490c8425929ddbcfe0550184fdc54cd13"}, + {file = "Babel-2.10.3-py3-none-any.whl", hash = "sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb"}, + {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, ] beautifulsoup4 = [ {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, ] certifi = [ - {file = "certifi-2022.5.18.1-py3-none-any.whl", hash = "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"}, - {file = "certifi-2022.5.18.1.tar.gz", hash = "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7"}, + {file = "certifi-2022.6.15-py3-none-any.whl", hash = "sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412"}, + {file = "certifi-2022.6.15.tar.gz", hash = "sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d"}, ] cffi = [ {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"}, @@ -915,48 +1027,52 @@ colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, ] +colorlog = [ + {file = "colorlog-6.6.0-py2.py3-none-any.whl", hash = "sha256:351c51e866c86c3217f08e4b067a7974a678be78f07f85fc2d55b8babde6d94e"}, + {file = "colorlog-6.6.0.tar.gz", hash = "sha256:344f73204009e4c83c5b6beb00b3c45dc70fcdae3c80db919e0a4171d006fde8"}, +] coverage = [ - {file = "coverage-6.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50ed480b798febce113709846b11f5d5ed1e529c88d8ae92f707806c50297abf"}, - {file = "coverage-6.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26f8f92699756cb7af2b30720de0c5bb8d028e923a95b6d0c891088025a1ac8f"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60c2147921da7f4d2d04f570e1838db32b95c5509d248f3fe6417e91437eaf41"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:750e13834b597eeb8ae6e72aa58d1d831b96beec5ad1d04479ae3772373a8088"}, - {file = "coverage-6.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af5b9ee0fc146e907aa0f5fb858c3b3da9199d78b7bb2c9973d95550bd40f701"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a022394996419142b33a0cf7274cb444c01d2bb123727c4bb0b9acabcb515dea"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5a78cf2c43b13aa6b56003707c5203f28585944c277c1f3f109c7b041b16bd39"}, - {file = "coverage-6.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9229d074e097f21dfe0643d9d0140ee7433814b3f0fc3706b4abffd1e3038632"}, - {file = "coverage-6.4-cp310-cp310-win32.whl", hash = "sha256:fb45fe08e1abc64eb836d187b20a59172053999823f7f6ef4f18a819c44ba16f"}, - {file = "coverage-6.4-cp310-cp310-win_amd64.whl", hash = "sha256:3cfd07c5889ddb96a401449109a8b97a165be9d67077df6802f59708bfb07720"}, - {file = "coverage-6.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:03014a74023abaf5a591eeeaf1ac66a73d54eba178ff4cb1fa0c0a44aae70383"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c82f2cd69c71698152e943f4a5a6b83a3ab1db73b88f6e769fabc86074c3b08"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7b546cf2b1974ddc2cb222a109b37c6ed1778b9be7e6b0c0bc0cf0438d9e45a6"}, - {file = "coverage-6.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc173f1ce9ffb16b299f51c9ce53f66a62f4d975abe5640e976904066f3c835d"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c53ad261dfc8695062fc8811ac7c162bd6096a05a19f26097f411bdf5747aee7"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:eef5292b60b6de753d6e7f2d128d5841c7915fb1e3321c3a1fe6acfe76c38052"}, - {file = "coverage-6.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:543e172ce4c0de533fa892034cce260467b213c0ea8e39da2f65f9a477425211"}, - {file = "coverage-6.4-cp37-cp37m-win32.whl", hash = "sha256:00c8544510f3c98476bbd58201ac2b150ffbcce46a8c3e4fb89ebf01998f806a"}, - {file = "coverage-6.4-cp37-cp37m-win_amd64.whl", hash = "sha256:b84ab65444dcc68d761e95d4d70f3cfd347ceca5a029f2ffec37d4f124f61311"}, - {file = "coverage-6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d548edacbf16a8276af13063a2b0669d58bbcfca7c55a255f84aac2870786a61"}, - {file = "coverage-6.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:033ebec282793bd9eb988d0271c211e58442c31077976c19c442e24d827d356f"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:742fb8b43835078dd7496c3c25a1ec8d15351df49fb0037bffb4754291ef30ce"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d55fae115ef9f67934e9f1103c9ba826b4c690e4c5bcf94482b8b2398311bf9c"}, - {file = "coverage-6.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd698341626f3c77784858427bad0cdd54a713115b423d22ac83a28303d1d95"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:62d382f7d77eeeaff14b30516b17bcbe80f645f5cf02bb755baac376591c653c"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:016d7f5cf1c8c84f533a3c1f8f36126fbe00b2ec0ccca47cc5731c3723d327c6"}, - {file = "coverage-6.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:69432946f154c6add0e9ede03cc43b96e2ef2733110a77444823c053b1ff5166"}, - {file = "coverage-6.4-cp38-cp38-win32.whl", hash = "sha256:83bd142cdec5e4a5c4ca1d4ff6fa807d28460f9db919f9f6a31babaaa8b88426"}, - {file = "coverage-6.4-cp38-cp38-win_amd64.whl", hash = "sha256:4002f9e8c1f286e986fe96ec58742b93484195defc01d5cc7809b8f7acb5ece3"}, - {file = "coverage-6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e4f52c272fdc82e7c65ff3f17a7179bc5f710ebc8ce8a5cadac81215e8326740"}, - {file = "coverage-6.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b5578efe4038be02d76c344007b13119b2b20acd009a88dde8adec2de4f630b5"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8099ea680201c2221f8468c372198ceba9338a5fec0e940111962b03b3f716a"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a00441f5ea4504f5abbc047589d09e0dc33eb447dc45a1a527c8b74bfdd32c65"}, - {file = "coverage-6.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e76bd16f0e31bc2b07e0fb1379551fcd40daf8cdf7e24f31a29e442878a827c"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8d2e80dd3438e93b19e1223a9850fa65425e77f2607a364b6fd134fcd52dc9df"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:341e9c2008c481c5c72d0e0dbf64980a4b2238631a7f9780b0fe2e95755fb018"}, - {file = "coverage-6.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:21e6686a95025927775ac501e74f5940cdf6fe052292f3a3f7349b0abae6d00f"}, - {file = "coverage-6.4-cp39-cp39-win32.whl", hash = "sha256:968ed5407f9460bd5a591cefd1388cc00a8f5099de9e76234655ae48cfdbe2c3"}, - {file = "coverage-6.4-cp39-cp39-win_amd64.whl", hash = "sha256:e35217031e4b534b09f9b9a5841b9344a30a6357627761d4218818b865d45055"}, - {file = "coverage-6.4-pp36.pp37.pp38-none-any.whl", hash = "sha256:e637ae0b7b481905358624ef2e81d7fb0b1af55f5ff99f9ba05442a444b11e45"}, - {file = "coverage-6.4.tar.gz", hash = "sha256:727dafd7f67a6e1cad808dc884bd9c5a2f6ef1f8f6d2f22b37b96cb0080d4f49"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f1d5aa2703e1dab4ae6cf416eb0095304f49d004c39e9db1d86f57924f43006b"}, + {file = "coverage-6.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4ce1b258493cbf8aec43e9b50d89982346b98e9ffdfaae8ae5793bc112fb0068"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c4e737f60c6936460c5be330d296dd5b48b3963f48634c53b3f7deb0f34ec4"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84e65ef149028516c6d64461b95a8dbcfce95cfd5b9eb634320596173332ea84"}, + {file = "coverage-6.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f69718750eaae75efe506406c490d6fc5a6161d047206cc63ce25527e8a3adad"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e57816f8ffe46b1df8f12e1b348f06d164fd5219beba7d9433ba79608ef011cc"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:01c5615d13f3dd3aa8543afc069e5319cfa0c7d712f6e04b920431e5c564a749"}, + {file = "coverage-6.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:75ab269400706fab15981fd4bd5080c56bd5cc07c3bccb86aab5e1d5a88dc8f4"}, + {file = "coverage-6.4.1-cp310-cp310-win32.whl", hash = "sha256:a7f3049243783df2e6cc6deafc49ea123522b59f464831476d3d1448e30d72df"}, + {file = "coverage-6.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:ee2ddcac99b2d2aec413e36d7a429ae9ebcadf912946b13ffa88e7d4c9b712d6"}, + {file = "coverage-6.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fb73e0011b8793c053bfa85e53129ba5f0250fdc0392c1591fd35d915ec75c46"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:106c16dfe494de3193ec55cac9640dd039b66e196e4641fa8ac396181578b982"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f4f3df85aa39da00fd3ec4b5abeb7407e82b68c7c5ad181308b0e2526da5d4"}, + {file = "coverage-6.4.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:961e2fb0680b4f5ad63234e0bf55dfb90d302740ae9c7ed0120677a94a1590cb"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cec3a0f75c8f1031825e19cd86ee787e87cf03e4fd2865c79c057092e69e3a3b"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:129cd05ba6f0d08a766d942a9ed4b29283aff7b2cccf5b7ce279d50796860bb3"}, + {file = "coverage-6.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bf5601c33213d3cb19d17a796f8a14a9eaa5e87629a53979a5981e3e3ae166f6"}, + {file = "coverage-6.4.1-cp37-cp37m-win32.whl", hash = "sha256:269eaa2c20a13a5bf17558d4dc91a8d078c4fa1872f25303dddcbba3a813085e"}, + {file = "coverage-6.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f02cbbf8119db68455b9d763f2f8737bb7db7e43720afa07d8eb1604e5c5ae28"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ffa9297c3a453fba4717d06df579af42ab9a28022444cae7fa605af4df612d54"}, + {file = "coverage-6.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:145f296d00441ca703a659e8f3eb48ae39fb083baba2d7ce4482fb2723e050d9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d44996140af8b84284e5e7d398e589574b376fb4de8ccd28d82ad8e3bea13"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2bd9a6fc18aab8d2e18f89b7ff91c0f34ff4d5e0ba0b33e989b3cd4194c81fd9"}, + {file = "coverage-6.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3384f2a3652cef289e38100f2d037956194a837221edd520a7ee5b42d00cc605"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9b3e07152b4563722be523e8cd0b209e0d1a373022cfbde395ebb6575bf6790d"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1480ff858b4113db2718848d7b2d1b75bc79895a9c22e76a221b9d8d62496428"}, + {file = "coverage-6.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:865d69ae811a392f4d06bde506d531f6a28a00af36f5c8649684a9e5e4a85c83"}, + {file = "coverage-6.4.1-cp38-cp38-win32.whl", hash = "sha256:664a47ce62fe4bef9e2d2c430306e1428ecea207ffd68649e3b942fa8ea83b0b"}, + {file = "coverage-6.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:26dff09fb0d82693ba9e6231248641d60ba606150d02ed45110f9ec26404ed1c"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9c80df769f5ec05ad21ea34be7458d1dc51ff1fb4b2219e77fe24edf462d6df"}, + {file = "coverage-6.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39ee53946bf009788108b4dd2894bf1349b4e0ca18c2016ffa7d26ce46b8f10d"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5b66caa62922531059bc5ac04f836860412f7f88d38a476eda0a6f11d4724f4"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd180ed867e289964404051a958f7cccabdeed423f91a899829264bb7974d3d3"}, + {file = "coverage-6.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84631e81dd053e8a0d4967cedab6db94345f1c36107c71698f746cb2636c63e3"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8c08da0bd238f2970230c2a0d28ff0e99961598cb2e810245d7fc5afcf1254e8"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d42c549a8f41dc103a8004b9f0c433e2086add8a719da00e246e17cbe4056f72"}, + {file = "coverage-6.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:309ce4a522ed5fca432af4ebe0f32b21d6d7ccbb0f5fcc99290e71feba67c264"}, + {file = "coverage-6.4.1-cp39-cp39-win32.whl", hash = "sha256:fdb6f7bd51c2d1714cea40718f6149ad9be6a2ee7d93b19e9f00934c0f2a74d9"}, + {file = "coverage-6.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:342d4aefd1c3e7f620a13f4fe563154d808b69cccef415415aece4c786665397"}, + {file = "coverage-6.4.1-pp36.pp37.pp38-none-any.whl", hash = "sha256:4803e7ccf93230accb928f3a68f00ffa80a88213af98ed338a57ad021ef06815"}, + {file = "coverage-6.4.1.tar.gz", hash = "sha256:4321f075095a096e70aff1d002030ee612b65a205a0a0f5b815280d5dc58100c"}, ] cryptography = [ {file = "cryptography-37.0.2-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181"}, @@ -986,15 +1102,23 @@ dill = [ {file = "dill-0.3.5.1-py2.py3-none-any.whl", hash = "sha256:33501d03270bbe410c72639b350e941882a8b0fd55357580fbc873fba0c59302"}, {file = "dill-0.3.5.1.tar.gz", hash = "sha256:d75e41f3eff1eee599d738e76ba8f4ad98ea229db8b085318aa2b3333a208c86"}, ] +distlib = [ + {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"}, + {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"}, +] docutils = [ {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, ] exasol-sphinx-github-pages-generator = [] exasol-udf-mock-python = [] +filelock = [ + {file = "filelock-3.7.1-py3-none-any.whl", hash = "sha256:37def7b658813cda163b56fc564cdc75e86d338246458c4c28ae84cabefa2404"}, + {file = "filelock-3.7.1.tar.gz", hash = "sha256:3a0fd85166ad9dbab54c9aec96737b744106dc5f15c0b09a6744a445299fcf04"}, +] furo = [ - {file = "furo-2022.4.7-py3-none-any.whl", hash = "sha256:7f3e3d2fb977483590f8ecb2c2cd511bd82661b79c18efb24de9558bc9cdf2d7"}, - {file = "furo-2022.4.7.tar.gz", hash = "sha256:96204ab7cd047e4b6c523996e0279c4c629a8fc31f4f109b2efd470c17f49c80"}, + {file = "furo-2022.6.4.1-py3-none-any.whl", hash = "sha256:79f2d3a61e3d971c0acd59f53d3202e7336789cd893f7bdc3cc7bc37d6ef252c"}, + {file = "furo-2022.6.4.1.tar.gz", hash = "sha256:c927848edf3292030d0719ebdab9e16d56f1b91c68562b9be316aa5b843775ab"}, ] gitdb = [ {file = "gitdb-4.0.9-py3-none-any.whl", hash = "sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd"}, @@ -1090,6 +1214,10 @@ myst-parser = [ {file = "myst-parser-0.17.2.tar.gz", hash = "sha256:4c076d649e066f9f5c7c661bae2658be1ca06e76b002bb97f02a09398707686c"}, {file = "myst_parser-0.17.2-py3-none-any.whl", hash = "sha256:1635ce3c18965a528d6de980f989ff64d6a1effb482e1f611b1bfb79e38f3d98"}, ] +nox = [ + {file = "nox-2022.1.7-py3-none-any.whl", hash = "sha256:efee12f02d39405b16d68f60e7a06fe1fc450ae58669d6cdda8c7f48e3bae9e3"}, + {file = "nox-2022.1.7.tar.gz", hash = "sha256:b375238cebb0b9df2fab74b8d0ce1a50cd80df60ca2e13f38f539454fcd97d7e"}, +] numpy = [ {file = "numpy-1.22.4-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:ba9ead61dfb5d971d77b6c131a9dbee62294a932bf6a356e48c75ae684e635b3"}, {file = "numpy-1.22.4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1ce7ab2053e36c0a71e7a13a7475bd3b1f54750b4b433adc96313e127b870887"}, @@ -1145,6 +1273,10 @@ pastel = [ {file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"}, {file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"}, ] +platformdirs = [ + {file = "platformdirs-2.5.2-py3-none-any.whl", hash = "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788"}, + {file = "platformdirs-2.5.2.tar.gz", hash = "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"}, +] pluggy = [ {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, @@ -1244,8 +1376,8 @@ pyyaml = [ {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] requests = [ - {file = "requests-2.27.1-py2.py3-none-any.whl", hash = "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"}, - {file = "requests-2.27.1.tar.gz", hash = "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61"}, + {file = "requests-2.28.0-py3-none-any.whl", hash = "sha256:bc7861137fbce630f17b03d3ad02ad0bf978c844f3536d0edda6499dafce2b6f"}, + {file = "requests-2.28.0.tar.gz", hash = "sha256:d568723a7ebd25875d8d1eaf5dfa068cd2fc8194b2e483d7b1f7c81918dbec6b"}, ] rsa = [ {file = "rsa-4.8-py3-none-any.whl", hash = "sha256:95c5d300c4e879ee69708c428ba566c59478fd653cc3a22243eeb8ed846950bb"}, @@ -1271,6 +1403,10 @@ sphinx = [ {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, ] +sphinx-basic-ng = [ + {file = "sphinx_basic_ng-0.0.1a11-py3-none-any.whl", hash = "sha256:9aecb5345816998789ef76658a83e3c0a12aafa14b17d40e28cd4aaeb94d1517"}, + {file = "sphinx_basic_ng-0.0.1a11.tar.gz", hash = "sha256:bf9a8fda0379c7d2ab51c9543f2b18e014b77fb295b49d64f3c1a910c863b34f"}, +] sphinxcontrib-applehelp = [ {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, @@ -1315,6 +1451,10 @@ urllib3 = [ {file = "urllib3-1.26.9-py2.py3-none-any.whl", hash = "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14"}, {file = "urllib3-1.26.9.tar.gz", hash = "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"}, ] +virtualenv = [ + {file = "virtualenv-20.14.1-py2.py3-none-any.whl", hash = "sha256:e617f16e25b42eb4f6e74096b9c9e37713cf10bf30168fb4a739f3fa8f898a3a"}, + {file = "virtualenv-20.14.1.tar.gz", hash = "sha256:ef589a79795589aada0c1c5b319486797c03b67ac3984c48c669c0e4f50df3a5"}, +] websocket-client = [ {file = "websocket-client-1.3.2.tar.gz", hash = "sha256:50b21db0058f7a953d67cc0445be4b948d7fc196ecbeb8083d68d94628e4abf6"}, {file = "websocket_client-1.3.2-py3-none-any.whl", hash = "sha256:722b171be00f2b90e1d4fb2f2b53146a536ca38db1da8ff49c972a4e1365d0ef"}, diff --git a/pyproject.toml b/pyproject.toml index e72ba3eb..ca51db35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,29 +28,12 @@ typeguard = ">=2.11.1" pytest = "^7.1.2" pytest-cov = "^3.0.0" Sphinx = "^4.5" -poethepoet = "^0.13.0" myst-parser = "^0.17.0" pyexasol = "^0.24.0" dill = "^0.3.4" exasol-udf-mock-python = { git = "https://github.com/exasol/udf-mock-python.git", branch = "master" } -exasol-sphinx-github-pages-generator = { git = "https://github.com/exasol/sphinx-github-pages-generator.git", branch = "main" } +exasol-sphinx-github-pages-generator = { git = "https://github.com/exasol/sphinx-github-pages-generator.git", tag = "0.1.0"} gitpython = ">=2.1.0" toml = ">=0.10.2" +nox = "^2022.1.7" -[tool.poe.tasks] -build-html-doc = {shell = """ - cd "$(git rev-parse --show-toplevel)/doc"; - sphinx-apidoc -T -e -o api ../exasol_bucketfs_utils_python; - sphinx-build -b html -W . .build-docu - """ } -open-html-doc = { shell = """ - cd "$(git rev-parse --show-toplevel)/doc"; - xdg-open .build-docu/index.html""" } -build-and-open-html-doc = [ "build-html-doc", "open-html-doc" ] - -commit_pages_main = { shell = """cd $(git rev-parse --show-toplevel); bash ./doc/scripts/commit_pages_main.sh """ } -commit_pages_current = { shell = """cd "$(git rev-parse --show-toplevel)"; bash ./doc/scripts/commit_pages_current.sh """ } -push_pages_main = { shell = """cd $(git rev-parse --show-toplevel); bash ./doc/scripts/push_pages_main.sh """ } -push_pages_current = { shell = """cd $(git rev-parse --show-toplevel); bash ./doc/scripts/push_pages_current.sh """ } -push_pages_release = { shell = """cd "$(git rev-parse --show-toplevel)"; bash ./doc/scripts/push_pages_main.sh """ } -test = "pytest tests" From 91aee028cce0ea6ec01450a6c6627f436daaaf0c Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 12:23:52 +0200 Subject: [PATCH 06/24] changed sgpg calls in workflows --- .github/workflows/check_documentation_build.yaml | 2 +- .github/workflows/create_release_docu.yaml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check_documentation_build.yaml b/.github/workflows/check_documentation_build.yaml index 45088ec4..a38ebc76 100644 --- a/.github/workflows/check_documentation_build.yaml +++ b/.github/workflows/check_documentation_build.yaml @@ -35,7 +35,7 @@ jobs: git config --local user.email "opensource@exasol.com" git config --local user.name "GitHub Action" git fetch - poetry run poe push_pages_current + poetry run python -m nox -s push_pages_current - name: Cleanup delete target branch if: ${{ !contains(github.ref, 'main') }} run: git push -d origin "github-pages/"$(git branch --show-current)"" diff --git a/.github/workflows/create_release_docu.yaml b/.github/workflows/create_release_docu.yaml index 6a089712..8a8ed123 100644 --- a/.github/workflows/create_release_docu.yaml +++ b/.github/workflows/create_release_docu.yaml @@ -30,4 +30,5 @@ jobs: git config --local user.email "opensource@exasol.com" git config --local user.name "GitHub Action" git fetch - poetry run poe push_pages_release + poetry run python -m nox -s push_pages_release + From f5e0eadb9f835db8f4213dd8ee66492e7df27a1f Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 12:29:20 +0200 Subject: [PATCH 07/24] typos --- noxfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index b7de008a..31f12644 100644 --- a/noxfile.py +++ b/noxfile.py @@ -41,7 +41,7 @@ def commit_pages_main(session): @nox.session def commit_pages_current(session): BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) - branch = session.sun("git", "branch", "--show-current", silent=True) + branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", "--target_branch", "github-pages" + branch, @@ -67,7 +67,7 @@ def push_pages_main(session): @nox.session def push_pages_current(session): BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) - branch = session.sun("git", "branch", "--show-current", silent=True) + branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", "--target_branch", "github-pages" + branch, From 5e19f8bc2dae50142dd6f011dffbd44a06220969 Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 12:35:46 +0200 Subject: [PATCH 08/24] fix broken paths --- noxfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index 31f12644..e45ab41e 100644 --- a/noxfile.py +++ b/noxfile.py @@ -44,7 +44,7 @@ def commit_pages_current(session): branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", - "--target_branch", "github-pages" + branch, + "--target_branch", "github-pages/" + branch, "--push_origin", "origin", "--push_enabled", "commit", "--module_path", "${StringArray[@]}", @@ -70,7 +70,7 @@ def push_pages_current(session): branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", - "--target_branch", "github-pages" + branch, + "--target_branch", "github-pages/" + branch, "--push_origin", "origin", "--push_enabled", "push", "--module_path", "${StringArray[@]}", From 274b385140947b2f10a4670bf2d1663adb87e51e Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 12:49:00 +0200 Subject: [PATCH 09/24] fix broken paths, tag --- noxfile.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/noxfile.py b/noxfile.py index e45ab41e..c91f9515 100644 --- a/noxfile.py +++ b/noxfile.py @@ -44,7 +44,7 @@ def commit_pages_current(session): branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", - "--target_branch", "github-pages/" + branch, + "--target_branch", "github-pages/" + branch[:-1], "--push_origin", "origin", "--push_enabled", "commit", "--module_path", "${StringArray[@]}", @@ -70,7 +70,7 @@ def push_pages_current(session): branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", - "--target_branch", "github-pages/" + branch, + "--target_branch", "github-pages/" + branch[:-1], "--push_origin", "origin", "--push_enabled", "push", "--module_path", "${StringArray[@]}", @@ -80,7 +80,9 @@ def push_pages_current(session): @nox.session def push_pages_release(session): BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) - tag = session.run("git", "tag", "--sort=committerdate", "|", "tail", "-1") + tags = session.run("git", "tag", "--sort=committerdate", silent=True) + # get the latest tag. last element in list is empty string, so choose second to last + tag = tags.split("\n")[-2] with session.chdir(BASE_PATH[:-1]): session.run("sgpg", "--target_branch", "github-pages/main", From 6e9f897bd321cd72ec74ae8a45adcedd4b794197 Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 12:55:41 +0200 Subject: [PATCH 10/24] code review changes --- .github/workflows/check_documentation_build.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/check_documentation_build.yaml b/.github/workflows/check_documentation_build.yaml index a38ebc76..b43e77be 100644 --- a/.github/workflows/check_documentation_build.yaml +++ b/.github/workflows/check_documentation_build.yaml @@ -2,8 +2,7 @@ name: Check the documentation build, publish if on main on: push: - # This way it only triggers on branch pushes, - # and ignores releases that push a tag. + # Only trigger if branches get pushed (ignored pushed a tag) tags-ignore: - '**' branches-ignore: From ea21548dbf318602ab3a09367bff13411ad7586d Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 12:59:00 +0200 Subject: [PATCH 11/24] docu link in readme --- README.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 0d8e9e65..3e9c06b2 100644 --- a/README.rst +++ b/README.rst @@ -27,7 +27,8 @@ Install the package from Github via `pip`:: Documentation ------------- -`Documentation for the latest release `_ is hosted on the Github Pages of this project. +`Documentation for the current main branch `_ is hosted on the Github Pages of this project. +`Here`_ is a list of documentations for previous releases. Features ======== From b262406cd69e94d8aec5910ddf804542b16a758a Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 13:03:47 +0200 Subject: [PATCH 12/24] typo, setup.py --- README.rst | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 3e9c06b2..7ec9b6b8 100644 --- a/README.rst +++ b/README.rst @@ -28,7 +28,7 @@ Documentation ------------- `Documentation for the current main branch `_ is hosted on the Github Pages of this project. -`Here`_ is a list of documentations for previous releases. +`Here `_ is a list of documentations for previous releases. Features ======== diff --git a/setup.py b/setup.py index 9a7cb4f0..716669c8 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ 'name': 'exasol-bucketfs-utils-python', 'version': '0.3.0', 'description': 'BucketFS utilities for the Python programming language', - 'long_description': '#####################\nBucketFS Utils Python\n#####################\n\n********\nOverview\n********\n\nThis project provides a python library for accessing the Exasol BucketFS system.\nIt provides functions to upload and download files to and from the BucketFS.\n\nIn a Nutshell\n=============\n\nPrerequisites\n-------------\n\n- Python 3.8+\n\nInstallation\n-------------\n\nInstall the package from Github via `pip`::\n\n pip install -e git://github.com/exasol/bucketfs-utils-python.git@{tag name}#egg=exasol-bucketfs-utils-python\n\nDocumentation\n-------------\n\n`Documentation for the latest release `_ is hosted on the Github Pages of this project.\n\nFeatures\n========\n\n* Download or upload files from/to the Exasol BucketFS\n* Supported sources and targets for the uploads and downloads:\n\n * Files on the local Filesystem\n * Python file objects\n * Python Strings\n * Python objects ((De-)Serialization with [Joblib](https://joblib.readthedocs.io/en/latest/persistence.html))\n\n* Loading an artefact from a public Github Release into the BucketFS\n', + 'long_description': '#####################\nBucketFS Utils Python\n#####################\n\n********\nOverview\n********\n\nThis project provides a python library for accessing the Exasol BucketFS system.\nIt provides functions to upload and download files to and from the BucketFS.\n\nIn a Nutshell\n=============\n\nPrerequisites\n-------------\n\n- Python 3.8+\n\nInstallation\n-------------\n\nInstall the package from Github via `pip`::\n\n pip install -e git://github.com/exasol/bucketfs-utils-python.git@{tag name}#egg=exasol-bucketfs-utils-python\n\nDocumentation\n-------------\n\n`Documentation for the current main branch `_ is hosted on the Github Pages of this project.\n`Here `_ is a list of documentations for previous releases.\n\nFeatures\n========\n\n* Download or upload files from/to the Exasol BucketFS\n* Supported sources and targets for the uploads and downloads:\n\n * Files on the local Filesystem\n * Python file objects\n * Python Strings\n * Python objects ((De-)Serialization with [Joblib](https://joblib.readthedocs.io/en/latest/persistence.html))\n\n* Loading an artefact from a public Github Release into the BucketFS\n', 'author': 'Torsten Kilias', 'author_email': 'torsten.kilias@exasol.com', 'maintainer': None, From 760bc5286973ef3fadbe0b6194d93c22b0a3f30a Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 13:30:43 +0200 Subject: [PATCH 13/24] update building_documentation.rst --- doc/developer_guide/building_documentation.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/developer_guide/building_documentation.rst b/doc/developer_guide/building_documentation.rst index 71308270..77ebd2f5 100644 --- a/doc/developer_guide/building_documentation.rst +++ b/doc/developer_guide/building_documentation.rst @@ -13,14 +13,14 @@ and supports reStructuredText with proper cross-document references. Building the Documentation interactively during coding ###################################################### -We defined several commands in the project.toml in poethepoet +We defined several nox commands in the noxfile.py in poethepoet which allow you to build and view the documentation during coding:: .. code:: bash - poetry run poe build-html-doc # Builds the documentation - poetry run poe open-html-doc # Opens the currently build documentation in the browser - poetry run poe build-and-open-html-doc # Builds and opens the documentation + nox -s build-html-doc # Builds the documentation + nox -s open-html-doc # Opens the currently build documentation in the browser + nox -s build-and-open-html-doc # Builds and opens the documentation All three build commands generate the documentation into /doc/.build-docu which is excluded in gitignore. @@ -52,9 +52,9 @@ For this purpose, we also provide a few shortcuts defined in our project.toml fo .. code:: bash - poetry run poe commit_pages_main # creates or updates github-pages/main locally - poetry run poe push_pages_main # creates or updates github-pages/main and pushes it to origin - poetry run poe commit_pages_current # creates or updates github-pages/ locally - poetry run poe push_pages_current # creates or updates github-pages/ and pushes it to origin - poetry run poe push_pages_release # creates or updates github-pages/ and pushes it to origin + nox -s commit_pages_main # creates or updates github-pages/main locally + nox -s push_pages_main # creates or updates github-pages/main and pushes it to origin + nox -s commit_pages_current # creates or updates github-pages/ locally + nox -s push_pages_current # creates or updates github-pages/ and pushes it to origin + nox -s push_pages_release # creates or updates github-pages/ and pushes it to origin From ba27c1a41d5682049425a69e9720b2c605dff3d8 Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 13:33:58 +0200 Subject: [PATCH 14/24] updated changes-md --- doc/changes/changes_0.3.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/changes/changes_0.3.0.md b/doc/changes/changes_0.3.0.md index cd15c1a7..4460edbf 100644 --- a/doc/changes/changes_0.3.0.md +++ b/doc/changes/changes_0.3.0.md @@ -15,6 +15,7 @@ ## Refactoring - #53: Upgraded Python version to >=3.8, removed numpy from source again + - #38: Replaced old bash scripts for building documentation with Sphinx_Github-Pages-generator, migrated to Nox ## Security From 5469c66da7698e97da228f8b0c77594b770eae40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marlene=20Kre=C3=9F?= Date: Fri, 17 Jun 2022 13:36:32 +0200 Subject: [PATCH 15/24] Update doc/developer_guide/building_documentation.rst Co-authored-by: Torsten Kilias --- doc/developer_guide/building_documentation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/developer_guide/building_documentation.rst b/doc/developer_guide/building_documentation.rst index 77ebd2f5..5eee0221 100644 --- a/doc/developer_guide/building_documentation.rst +++ b/doc/developer_guide/building_documentation.rst @@ -13,7 +13,7 @@ and supports reStructuredText with proper cross-document references. Building the Documentation interactively during coding ###################################################### -We defined several nox commands in the noxfile.py in poethepoet +We defined several nox commands in the noxfile.py which allow you to build and view the documentation during coding:: .. code:: bash From 9bbf460143d111a6475b842c93683f78fba0eda7 Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 13:40:35 +0200 Subject: [PATCH 16/24] fix building_documentation.rst --- doc/developer_guide/building_documentation.rst | 2 +- poetry.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/developer_guide/building_documentation.rst b/doc/developer_guide/building_documentation.rst index 77ebd2f5..8289bcb9 100644 --- a/doc/developer_guide/building_documentation.rst +++ b/doc/developer_guide/building_documentation.rst @@ -48,7 +48,7 @@ On tag creation, the documentation is also build, and saved in the "tag-name" di You can run these tasks manually for testing purposes or checking the branch with Github Pages in a fork of the main repository. -For this purpose, we also provide a few shortcuts defined in our project.toml for poethepoet:: +For this purpose, we also provide a few shortcuts defined in our noxfile.py:: .. code:: bash diff --git a/poetry.lock b/poetry.lock index 27ca2ef9..9e91a5e3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -97,7 +97,7 @@ unicode_backport = ["unicodedata2"] [[package]] name = "colorama" -version = "0.4.4" +version = "0.4.5" description = "Cross-platform colored terminal text." category = "dev" optional = false @@ -936,7 +936,7 @@ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest- [metadata] lock-version = "1.1" python-versions = ">=3.8,<4.0" -content-hash = "5b10cbb1314b61aacc6aa1eb063104688781b24bd08b339414e6a4137da1adbd" +content-hash = "8d6c897f6f81eeb68e68773e133d0dfce97c021c781e7e23d0187980cf5e41a3" [metadata.files] alabaster = [ @@ -1024,8 +1024,8 @@ charset-normalizer = [ {file = "charset_normalizer-2.0.12-py3-none-any.whl", hash = "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"}, ] colorama = [ - {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, - {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, + {file = "colorama-0.4.5-py2.py3-none-any.whl", hash = "sha256:854bf444933e37f5824ae7bfc1e98d5bce2ebe4160d46b5edf346a89358e99da"}, + {file = "colorama-0.4.5.tar.gz", hash = "sha256:e6c6b4334fc50988a639d9b98aa429a0b57da6e17b9a44f0451f930b6967b7a4"}, ] colorlog = [ {file = "colorlog-6.6.0-py2.py3-none-any.whl", hash = "sha256:351c51e866c86c3217f08e4b067a7974a678be78f07f85fc2d55b8babde6d94e"}, From 496204e7edc5087cd84b5a9f70c9ffbe8f18f358 Mon Sep 17 00:00:00 2001 From: MarleneKress79789 Date: Fri, 17 Jun 2022 13:49:13 +0200 Subject: [PATCH 17/24] setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e437ae8d..8967f066 100644 --- a/setup.py +++ b/setup.py @@ -14,7 +14,7 @@ 'name': 'exasol-bucketfs-utils-python', 'version': '0.3.0', 'description': 'BucketFS utilities for the Python programming language', - 'long_description': '#####################\nBucketFS Utils Python\n#####################\n\n********\nOverview\n********\n\nThis project provides a python library for accessing the Exasol BucketFS system.\nIt provides functions to upload and download files to and from the BucketFS.\n\nIn a Nutshell\n=============\n\nPrerequisites\n-------------\n\n- Python 3.8+\n\nInstallation\n-------------\n\nInstall the package from Github via `pip`::\n\n pip install -e git+https://github.com/exasol/bucketfs-utils-python.git@{tag name}#egg=exasol-bucketfs-utils-python\n\nOr install the wheel directly via::\n\n pip install https://github.com/exasol/bucketfs-utils-python/releases/download/{tag name}/exasol_bucketfs_utils_python-{tag name}-py3-none-any.whl\n\nDocumentation\n-------------\n\n`Documentation for the latest release `_ is hosted on the Github Pages of this project.\n\nFeatures\n========\n\n* Download or upload files from/to the Exasol BucketFS\n* Supported sources and targets for the uploads and downloads:\n\n * Files on the local Filesystem\n * Python file objects\n * Python Strings\n * Python objects ((De-)Serialization with [Joblib](https://joblib.readthedocs.io/en/latest/persistence.html))\n\n* Loading an artefact from a public Github Release into the BucketFS\n', + 'long_description': '#####################\nBucketFS Utils Python\n#####################\n\n********\nOverview\n********\n\nThis project provides a python library for accessing the Exasol BucketFS system.\nIt provides functions to upload and download files to and from the BucketFS.\n\nIn a Nutshell\n=============\n\nPrerequisites\n-------------\n\n- Python 3.8+\n\nInstallation\n-------------\n\nInstall the package from Github via `pip`::\n\n pip install -e git+https://github.com/exasol/bucketfs-utils-python.git@{tag name}#egg=exasol-bucketfs-utils-python\n\nOr install the wheel directly via::\n\n pip install https://github.com/exasol/bucketfs-utils-python/releases/download/{tag name}/exasol_bucketfs_utils_python-{tag name}-py3-none-any.whl\n\nDocumentation\n-------------\n\n`Documentation for the current main branch `_ is hosted on the Github Pages of this project.\n`Here `_ is a list of documentations for previous releases.\n\nFeatures\n========\n\n* Download or upload files from/to the Exasol BucketFS\n* Supported sources and targets for the uploads and downloads:\n\n * Files on the local Filesystem\n * Python file objects\n * Python Strings\n * Python objects ((De-)Serialization with [Joblib](https://joblib.readthedocs.io/en/latest/persistence.html))\n\n* Loading an artefact from a public Github Release into the BucketFS\n', 'author': 'Torsten Kilias', 'author_email': 'torsten.kilias@exasol.com', 'maintainer': None, From f6f87453fd2939baa8e941757c22d371561220c1 Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Tue, 21 Jun 2022 15:15:10 +0200 Subject: [PATCH 18/24] Extract common functions out of the sessions in noxfile.py --- noxfile.py | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/noxfile.py b/noxfile.py index c91f9515..89e54a41 100644 --- a/noxfile.py +++ b/noxfile.py @@ -3,31 +3,39 @@ @nox.session def build_html_doc(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): - session.run("sphinx-apidoc", "-T", "-e", "-o", "api", "../exasol_bucketfs_utils_python") - session.run("sphinx-build", "-b", "html", "-W", ".", ".build-docu") + _build_html_doc(session) + + +def _get_base_path(session): + BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + return BASE_PATH + + +def _build_html_doc(session): + session.run("sphinx-apidoc", "-T", "-e", "-o", "api", "../exasol_bucketfs_utils_python") + session.run("sphinx-build", "-b", "html", "-W", ".", ".build-docu") @nox.session def open_html_doc(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): session.run("xdg-open", ".build-docu/index.html") @nox.session def build_and_open_html_doc(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): - session.run("sphinx-apidoc", "-T", "-e", "-o", "api", "../exasol_bucketfs_utils_python") - session.run("sphinx-build", "-b", "html", "-W", ".", ".build-docu") + _build_html_doc(session) session.run("xdg-open", ".build-docu/index.html") @nox.session def commit_pages_main(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", "--target_branch", "github-pages/main", @@ -40,7 +48,7 @@ def commit_pages_main(session): @nox.session def commit_pages_current(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", @@ -53,7 +61,7 @@ def commit_pages_current(session): @nox.session def push_pages_main(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", "--target_branch", "github-pages/main", @@ -66,7 +74,7 @@ def push_pages_main(session): @nox.session def push_pages_current(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", @@ -79,7 +87,7 @@ def push_pages_current(session): @nox.session def push_pages_release(session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) + BASE_PATH = _get_base_path(session) tags = session.run("git", "tag", "--sort=committerdate", silent=True) # get the latest tag. last element in list is empty string, so choose second to last tag = tags.split("\n")[-2] @@ -96,4 +104,6 @@ def push_pages_release(session): @nox.session def run_tests(session): - session.run("pytest", "tests") + BASE_PATH = _get_base_path(session) + with session.chdir(BASE_PATH[:-1]): + session.run("pytest", "tests") From 24721f5cc1a17a261b9d65ee9564145d8b41d560 Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Tue, 21 Jun 2022 15:21:52 +0200 Subject: [PATCH 19/24] Add type hint for nox session to noxfile.py --- noxfile.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/noxfile.py b/noxfile.py index 89e54a41..3f12669a 100644 --- a/noxfile.py +++ b/noxfile.py @@ -2,31 +2,31 @@ @nox.session -def build_html_doc(session): +def build_html_doc(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): _build_html_doc(session) -def _get_base_path(session): +def _get_base_path(session: nox.Session): BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) return BASE_PATH -def _build_html_doc(session): +def _build_html_doc(session: nox.Session): session.run("sphinx-apidoc", "-T", "-e", "-o", "api", "../exasol_bucketfs_utils_python") session.run("sphinx-build", "-b", "html", "-W", ".", ".build-docu") @nox.session -def open_html_doc(session): +def open_html_doc(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): session.run("xdg-open", ".build-docu/index.html") @nox.session -def build_and_open_html_doc(session): +def build_and_open_html_doc(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): _build_html_doc(session) @@ -34,7 +34,7 @@ def build_and_open_html_doc(session): @nox.session -def commit_pages_main(session): +def commit_pages_main(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", @@ -43,11 +43,11 @@ def commit_pages_main(session): "--push_enabled", "commit", "--source_branch", "main", "--module_path", "${StringArray[@]}", - env={"StringArray":("../exasol-bucketfs-utils-python")}) + env={"StringArray": ("../exasol-bucketfs-utils-python")}) @nox.session -def commit_pages_current(session): +def commit_pages_current(session: nox.Session): BASE_PATH = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): @@ -60,7 +60,7 @@ def commit_pages_current(session): @nox.session -def push_pages_main(session): +def push_pages_main(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1]): session.run("sgpg", @@ -73,7 +73,7 @@ def push_pages_main(session): @nox.session -def push_pages_current(session): +def push_pages_current(session: nox.Session): BASE_PATH = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(BASE_PATH[:-1]): @@ -86,7 +86,7 @@ def push_pages_current(session): @nox.session -def push_pages_release(session): +def push_pages_release(session: nox.Session): BASE_PATH = _get_base_path(session) tags = session.run("git", "tag", "--sort=committerdate", silent=True) # get the latest tag. last element in list is empty string, so choose second to last @@ -96,14 +96,14 @@ def push_pages_release(session): "--target_branch", "github-pages/main", "--push_origin", "origin", "--push_enabled", "push", - "--source_branch", tag, + "--source_branch", tag, "--source_origin", "tags", "--module_path", "${StringArray[@]}", env={"StringArray": ("../exasol-bucketfs-utils-python")}) @nox.session -def run_tests(session): +def run_tests(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1]): session.run("pytest", "tests") From 9426d8aeddf38463b7724ddd1076c0205d919c5c Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Tue, 21 Jun 2022 17:40:11 +0200 Subject: [PATCH 20/24] Replace xdg-open with python builtin webbrowser package --- noxfile.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/noxfile.py b/noxfile.py index 3f12669a..c199dd0c 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1,11 +1,9 @@ -import nox +import webbrowser +from pathlib import Path +import nox -@nox.session -def build_html_doc(session: nox.Session): - BASE_PATH = _get_base_path(session) - with session.chdir(BASE_PATH[:-1] + "/doc"): - _build_html_doc(session) +nox.options.sessions = [] def _get_base_path(session: nox.Session): @@ -18,11 +16,23 @@ def _build_html_doc(session: nox.Session): session.run("sphinx-build", "-b", "html", "-W", ".", ".build-docu") +def _open_docs_in_browser(session: nox.Session): + index_file_path = Path(".build-docu/index.html").resolve() + webbrowser.open_new_tab(index_file_path.as_uri()) + + +@nox.session +def build_html_doc(session: nox.Session): + BASE_PATH = _get_base_path(session) + with session.chdir(BASE_PATH[:-1] + "/doc"): + _build_html_doc(session) + + @nox.session def open_html_doc(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): - session.run("xdg-open", ".build-docu/index.html") + _open_docs_in_browser(session) @nox.session @@ -30,7 +40,7 @@ def build_and_open_html_doc(session: nox.Session): BASE_PATH = _get_base_path(session) with session.chdir(BASE_PATH[:-1] + "/doc"): _build_html_doc(session) - session.run("xdg-open", ".build-docu/index.html") + _open_docs_in_browser(session) @nox.session From c2e30851b4b39f87aa741fbe8f4c5564cba2e79c Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Tue, 21 Jun 2022 17:45:07 +0200 Subject: [PATCH 21/24] Rename BASE_PATH variable to base_path --- noxfile.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/noxfile.py b/noxfile.py index c199dd0c..912bde91 100644 --- a/noxfile.py +++ b/noxfile.py @@ -7,8 +7,8 @@ def _get_base_path(session: nox.Session): - BASE_PATH = session.run("git", "rev-parse", "--show-toplevel", silent=True) - return BASE_PATH + base_path = session.run("git", "rev-parse", "--show-toplevel", silent=True) + return base_path def _build_html_doc(session: nox.Session): @@ -23,30 +23,30 @@ def _open_docs_in_browser(session: nox.Session): @nox.session def build_html_doc(session: nox.Session): - BASE_PATH = _get_base_path(session) - with session.chdir(BASE_PATH[:-1] + "/doc"): + base_path = _get_base_path(session) + with session.chdir(base_path[:-1] + "/doc"): _build_html_doc(session) @nox.session def open_html_doc(session: nox.Session): - BASE_PATH = _get_base_path(session) - with session.chdir(BASE_PATH[:-1] + "/doc"): + base_path = _get_base_path(session) + with session.chdir(base_path[:-1] + "/doc"): _open_docs_in_browser(session) @nox.session def build_and_open_html_doc(session: nox.Session): - BASE_PATH = _get_base_path(session) - with session.chdir(BASE_PATH[:-1] + "/doc"): + base_path = _get_base_path(session) + with session.chdir(base_path[:-1] + "/doc"): _build_html_doc(session) _open_docs_in_browser(session) @nox.session def commit_pages_main(session: nox.Session): - BASE_PATH = _get_base_path(session) - with session.chdir(BASE_PATH[:-1]): + base_path = _get_base_path(session) + with session.chdir(base_path[:-1]): session.run("sgpg", "--target_branch", "github-pages/main", "--push_origin", "origin", @@ -58,9 +58,9 @@ def commit_pages_main(session: nox.Session): @nox.session def commit_pages_current(session: nox.Session): - BASE_PATH = _get_base_path(session) + base_path = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) - with session.chdir(BASE_PATH[:-1]): + with session.chdir(base_path[:-1]): session.run("sgpg", "--target_branch", "github-pages/" + branch[:-1], "--push_origin", "origin", @@ -71,8 +71,8 @@ def commit_pages_current(session: nox.Session): @nox.session def push_pages_main(session: nox.Session): - BASE_PATH = _get_base_path(session) - with session.chdir(BASE_PATH[:-1]): + base_path = _get_base_path(session) + with session.chdir(base_path[:-1]): session.run("sgpg", "--target_branch", "github-pages/main", "--push_origin", "origin", @@ -84,9 +84,9 @@ def push_pages_main(session: nox.Session): @nox.session def push_pages_current(session: nox.Session): - BASE_PATH = _get_base_path(session) + base_path = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) - with session.chdir(BASE_PATH[:-1]): + with session.chdir(base_path[:-1]): session.run("sgpg", "--target_branch", "github-pages/" + branch[:-1], "--push_origin", "origin", @@ -97,11 +97,11 @@ def push_pages_current(session: nox.Session): @nox.session def push_pages_release(session: nox.Session): - BASE_PATH = _get_base_path(session) + base_path = _get_base_path(session) tags = session.run("git", "tag", "--sort=committerdate", silent=True) # get the latest tag. last element in list is empty string, so choose second to last tag = tags.split("\n")[-2] - with session.chdir(BASE_PATH[:-1]): + with session.chdir(base_path[:-1]): session.run("sgpg", "--target_branch", "github-pages/main", "--push_origin", "origin", @@ -114,6 +114,6 @@ def push_pages_release(session: nox.Session): @nox.session def run_tests(session: nox.Session): - BASE_PATH = _get_base_path(session) - with session.chdir(BASE_PATH[:-1]): + base_path = _get_base_path(session) + with session.chdir(base_path[:-1]): session.run("pytest", "tests") From 637d00d5a5714cd212f9a381b05bb6fba615528d Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Wed, 22 Jun 2022 11:37:26 +0200 Subject: [PATCH 22/24] Add name and docstring to nox session. Set python to none for sessions. --- noxfile.py | 39 ++++++++++++++++++++++++++++++--------- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/noxfile.py b/noxfile.py index 912bde91..779b51b2 100644 --- a/noxfile.py +++ b/noxfile.py @@ -21,30 +21,37 @@ def _open_docs_in_browser(session: nox.Session): webbrowser.open_new_tab(index_file_path.as_uri()) -@nox.session +@nox.session(name="build-html-doc", python=None) def build_html_doc(session: nox.Session): + """Build the documentation for current checkout""" base_path = _get_base_path(session) with session.chdir(base_path[:-1] + "/doc"): _build_html_doc(session) -@nox.session +@nox.session(name="open-html-doc", python=None) def open_html_doc(session: nox.Session): + """Open the documentation for current checkout in the browser""" base_path = _get_base_path(session) with session.chdir(base_path[:-1] + "/doc"): _open_docs_in_browser(session) -@nox.session +@nox.session(name="build-and-open-html-doc", python=None) def build_and_open_html_doc(session: nox.Session): + """Build and open the documentation for current checkout in browser""" base_path = _get_base_path(session) with session.chdir(base_path[:-1] + "/doc"): _build_html_doc(session) _open_docs_in_browser(session) -@nox.session +@nox.session(name="commit-pages-main", python=None) def commit_pages_main(session: nox.Session): + """ + Generate the GitHub pages documentation for the main branch and + commit it to the branch github-pages/main + """ base_path = _get_base_path(session) with session.chdir(base_path[:-1]): session.run("sgpg", @@ -56,8 +63,12 @@ def commit_pages_main(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session +@nox.session(name="commit-pages-current", python=None) def commit_pages_current(session: nox.Session): + """ + Generate the GitHub pages documentation for the current branch and + commit it to the branch github-pages/ + """ base_path = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(base_path[:-1]): @@ -69,8 +80,12 @@ def commit_pages_current(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session +@nox.session(name="push-pages-main", python=None) def push_pages_main(session: nox.Session): + """ + Generate the GitHub pages documentation for the main branch and + pushes it to the remote branch github-pages/main + """ base_path = _get_base_path(session) with session.chdir(base_path[:-1]): session.run("sgpg", @@ -82,8 +97,12 @@ def push_pages_main(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session +@nox.session(name="push-pages-current", python=None) def push_pages_current(session: nox.Session): + """ + Generate the GitHub pages documentation for the current branch and + pushes it to the remote branch github-pages/ + """ base_path = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) with session.chdir(base_path[:-1]): @@ -95,8 +114,9 @@ def push_pages_current(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session +@nox.session(name="push-pages-release", python=None) def push_pages_release(session: nox.Session): + """Generate the GitHub pages documentation for the release and pushes it to the remote branch github-pages/main""" base_path = _get_base_path(session) tags = session.run("git", "tag", "--sort=committerdate", silent=True) # get the latest tag. last element in list is empty string, so choose second to last @@ -112,8 +132,9 @@ def push_pages_release(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session +@nox.session(name="run-tests", python=None) def run_tests(session: nox.Session): + """Run the tests in the poetry environment""" base_path = _get_base_path(session) with session.chdir(base_path[:-1]): session.run("pytest", "tests") From 45a7981c7dcca6640c2682d00830546fafbf7105 Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Wed, 22 Jun 2022 11:51:07 +0200 Subject: [PATCH 23/24] Set python to False for sessions to disable venv creation. for details see https://nox.thea.codes/en/stable/config.html#configuring-a-session-s-virtualenv --- noxfile.py | 53 +++++++++++++++++++++-------------------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/noxfile.py b/noxfile.py index 779b51b2..de1469d4 100644 --- a/noxfile.py +++ b/noxfile.py @@ -3,12 +3,10 @@ import nox -nox.options.sessions = [] - +ROOT = Path(__file__).parent +LOCAL_DOC = ROOT / "doc" -def _get_base_path(session: nox.Session): - base_path = session.run("git", "rev-parse", "--show-toplevel", silent=True) - return base_path +nox.options.sessions = [] def _build_html_doc(session: nox.Session): @@ -21,39 +19,35 @@ def _open_docs_in_browser(session: nox.Session): webbrowser.open_new_tab(index_file_path.as_uri()) -@nox.session(name="build-html-doc", python=None) +@nox.session(name="build-html-doc", python=False) def build_html_doc(session: nox.Session): """Build the documentation for current checkout""" - base_path = _get_base_path(session) - with session.chdir(base_path[:-1] + "/doc"): + with session.chdir(LOCAL_DOC): _build_html_doc(session) -@nox.session(name="open-html-doc", python=None) +@nox.session(name="open-html-doc", python=False) def open_html_doc(session: nox.Session): """Open the documentation for current checkout in the browser""" - base_path = _get_base_path(session) - with session.chdir(base_path[:-1] + "/doc"): + with session.chdir(LOCAL_DOC): _open_docs_in_browser(session) -@nox.session(name="build-and-open-html-doc", python=None) +@nox.session(name="build-and-open-html-doc", python=False) def build_and_open_html_doc(session: nox.Session): """Build and open the documentation for current checkout in browser""" - base_path = _get_base_path(session) - with session.chdir(base_path[:-1] + "/doc"): + with session.chdir(LOCAL_DOC): _build_html_doc(session) _open_docs_in_browser(session) -@nox.session(name="commit-pages-main", python=None) +@nox.session(name="commit-pages-main", python=False) def commit_pages_main(session: nox.Session): """ Generate the GitHub pages documentation for the main branch and commit it to the branch github-pages/main """ - base_path = _get_base_path(session) - with session.chdir(base_path[:-1]): + with session.chdir(ROOT): session.run("sgpg", "--target_branch", "github-pages/main", "--push_origin", "origin", @@ -63,15 +57,14 @@ def commit_pages_main(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session(name="commit-pages-current", python=None) +@nox.session(name="commit-pages-current", python=False) def commit_pages_current(session: nox.Session): """ Generate the GitHub pages documentation for the current branch and commit it to the branch github-pages/ """ - base_path = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) - with session.chdir(base_path[:-1]): + with session.chdir(ROOT): session.run("sgpg", "--target_branch", "github-pages/" + branch[:-1], "--push_origin", "origin", @@ -80,14 +73,13 @@ def commit_pages_current(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session(name="push-pages-main", python=None) +@nox.session(name="push-pages-main", python=False) def push_pages_main(session: nox.Session): """ Generate the GitHub pages documentation for the main branch and pushes it to the remote branch github-pages/main """ - base_path = _get_base_path(session) - with session.chdir(base_path[:-1]): + with session.chdir(ROOT): session.run("sgpg", "--target_branch", "github-pages/main", "--push_origin", "origin", @@ -97,15 +89,14 @@ def push_pages_main(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session(name="push-pages-current", python=None) +@nox.session(name="push-pages-current", python=False) def push_pages_current(session: nox.Session): """ Generate the GitHub pages documentation for the current branch and pushes it to the remote branch github-pages/ """ - base_path = _get_base_path(session) branch = session.run("git", "branch", "--show-current", silent=True) - with session.chdir(base_path[:-1]): + with session.chdir(ROOT): session.run("sgpg", "--target_branch", "github-pages/" + branch[:-1], "--push_origin", "origin", @@ -114,14 +105,13 @@ def push_pages_current(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session(name="push-pages-release", python=None) +@nox.session(name="push-pages-release", python=False) def push_pages_release(session: nox.Session): """Generate the GitHub pages documentation for the release and pushes it to the remote branch github-pages/main""" - base_path = _get_base_path(session) tags = session.run("git", "tag", "--sort=committerdate", silent=True) # get the latest tag. last element in list is empty string, so choose second to last tag = tags.split("\n")[-2] - with session.chdir(base_path[:-1]): + with session.chdir(ROOT): session.run("sgpg", "--target_branch", "github-pages/main", "--push_origin", "origin", @@ -132,9 +122,8 @@ def push_pages_release(session: nox.Session): env={"StringArray": ("../exasol-bucketfs-utils-python")}) -@nox.session(name="run-tests", python=None) +@nox.session(name="run-tests", python=False) def run_tests(session: nox.Session): """Run the tests in the poetry environment""" - base_path = _get_base_path(session) - with session.chdir(base_path[:-1]): + with session.chdir(ROOT): session.run("pytest", "tests") From 09de6cb3c2e77c894cf569215988b2b5f4a45121 Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Wed, 22 Jun 2022 13:41:21 +0200 Subject: [PATCH 24/24] Fix nox session names in github actions and developer guide --- .github/workflows/check_documentation_build.yaml | 2 +- .github/workflows/create_release_docu.yaml | 2 +- doc/developer_guide/building_documentation.rst | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check_documentation_build.yaml b/.github/workflows/check_documentation_build.yaml index b43e77be..5133e132 100644 --- a/.github/workflows/check_documentation_build.yaml +++ b/.github/workflows/check_documentation_build.yaml @@ -34,7 +34,7 @@ jobs: git config --local user.email "opensource@exasol.com" git config --local user.name "GitHub Action" git fetch - poetry run python -m nox -s push_pages_current + poetry run python -m nox -s push-pages-current - name: Cleanup delete target branch if: ${{ !contains(github.ref, 'main') }} run: git push -d origin "github-pages/"$(git branch --show-current)"" diff --git a/.github/workflows/create_release_docu.yaml b/.github/workflows/create_release_docu.yaml index 8a8ed123..65f50729 100644 --- a/.github/workflows/create_release_docu.yaml +++ b/.github/workflows/create_release_docu.yaml @@ -30,5 +30,5 @@ jobs: git config --local user.email "opensource@exasol.com" git config --local user.name "GitHub Action" git fetch - poetry run python -m nox -s push_pages_release + poetry run python -m nox -s push-pages-release diff --git a/doc/developer_guide/building_documentation.rst b/doc/developer_guide/building_documentation.rst index 79cfaad4..d923644d 100644 --- a/doc/developer_guide/building_documentation.rst +++ b/doc/developer_guide/building_documentation.rst @@ -52,9 +52,9 @@ For this purpose, we also provide a few shortcuts defined in our noxfile.py:: .. code:: bash - nox -s commit_pages_main # creates or updates github-pages/main locally - nox -s push_pages_main # creates or updates github-pages/main and pushes it to origin - nox -s commit_pages_current # creates or updates github-pages/ locally - nox -s push_pages_current # creates or updates github-pages/ and pushes it to origin - nox -s push_pages_release # creates or updates github-pages/ and pushes it to origin + nox -s commit-pages-main # creates or updates github-pages/main locally + nox -s push-pages-main # creates or updates github-pages/main and pushes it to origin + nox -s commit-pages-current # creates or updates github-pages/ locally + nox -s push-pages-current # creates or updates github-pages/ and pushes it to origin + nox -s push-pages-release # creates or updates github-pages/ and pushes it to origin