From 5daa061cd197d0048e0315341cf6946c2c494343 Mon Sep 17 00:00:00 2001 From: Brian Mesick Date: Thu, 24 Oct 2024 16:49:07 -0400 Subject: [PATCH] feat: Import contents of aspects-dbt repo Moves the contents of aspects-dbt to this repository. There are a couple of current issues with this: - Old requirements for our clickhouse dbt stack conflict with the rest of our constraints - dbt docs generation / hosting won't work until we change the github pages for it --- .github/dependabot.yml | 11 + .github/profiles.yml | 16 ++ .github/workflows/ci-dbt-coverage.yml | 58 +++++ .github/workflows/ci-dbt-documentation.yml | 58 +++++ .github/workflows/ci-dbt-format.yml | 23 ++ .../workflows/{ci-xapi.yml => ci-python.yml} | 0 .gitignore | 21 +- Makefile | 15 +- dbt | 1 + pyproject.toml | 2 + requirements/base.in | 2 +- requirements/base.txt | 80 ++++--- requirements/ci.txt | 8 +- requirements/constraints.txt | 7 +- requirements/dbt.in | 8 + requirements/dbt.txt | 219 ++++++++++++++++++ requirements/dev.txt | 121 +++++----- requirements/docs.txt | 64 ++--- requirements/pip-tools.txt | 10 +- requirements/pip.txt | 2 +- requirements/quality.txt | 109 ++++----- requirements/test.txt | 96 ++++---- 22 files changed, 673 insertions(+), 258 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/profiles.yml create mode 100644 .github/workflows/ci-dbt-coverage.yml create mode 100644 .github/workflows/ci-dbt-documentation.yml create mode 100644 .github/workflows/ci-dbt-format.yml rename .github/workflows/{ci-xapi.yml => ci-python.yml} (100%) create mode 160000 dbt create mode 100644 pyproject.toml create mode 100644 requirements/dbt.in create mode 100644 requirements/dbt.txt diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..a3ea994 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/profiles.yml b/.github/profiles.yml new file mode 100644 index 0000000..9d2139a --- /dev/null +++ b/.github/profiles.yml @@ -0,0 +1,16 @@ +# This is a dbt profile for CI use. +# https://docs.getdbt.com/docs/core/connect-data-platform/connection-profiles +aspects: # this needs to match the profile in your dbt_project.yml file + target: dev + outputs: + dev: + type: clickhouse + schema: xapi + host: localhost + port: 8123 + user: ch_admin + password: "ch_password" + secure: False + + custom_settings: + check_table_dependencies: 0 diff --git a/.github/workflows/ci-dbt-coverage.yml b/.github/workflows/ci-dbt-coverage.yml new file mode 100644 index 0000000..14020f1 --- /dev/null +++ b/.github/workflows/ci-dbt-coverage.yml @@ -0,0 +1,58 @@ +# Check documentation coverage + +name: dbt Tests & Coverage + +on: + push: + branches: + - main + pull_request: + +env: + DBT_PROFILES_DIR: ./.github/ + CLICKHOUSE_DB: "xapi" + CLICKHOUSE_USER: "ch_admin" + CLICKHOUSE_PASSWORD: "ch_password" + TUTOR_ROOT: ./dbt/.ci/ + +jobs: + build: + name: Check coverage & run tests + runs-on: ubuntu-latest + permissions: + contents: "read" + id-token: "write" + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11.x" + - name: Install dependencies + run: | + pip install tutor-contrib-aspects + pip install -r requirements/dbt.txt + cd dbt + dbt deps + - name: Initialize Open edX + continue-on-error: false + run: | + tutor plugins enable aspects + tutor config save + tutor local start ralph -d + tutor local do init-clickhouse + tutor local do alembic -c "upgrade head" + tutor local do dbt + tutor local do load-xapi-test-data + - name: Check dbt tests + run: | + mv unit-test-seeds ci-seeds + dbt seed --full-refresh --selector all_tests + dbt run --full-refresh --selector all_tests + dbt test --selector all_tests + mv ci-seeds unit-test-seeds + - name: Check docs coverage + run: | + dbt docs generate + dbt-coverage compute doc --cov-fail-under 1.0 --model-path-filter models/ diff --git a/.github/workflows/ci-dbt-documentation.yml b/.github/workflows/ci-dbt-documentation.yml new file mode 100644 index 0000000..6957f7e --- /dev/null +++ b/.github/workflows/ci-dbt-documentation.yml @@ -0,0 +1,58 @@ +# Build documentation for dbt-aspects on every PR to main. +# Deploy documentation to gh-pages branch on every push to main. + +name: Build documentation + +on: + push: + branches: + - main + +env: + DBT_PROFILES_DIR: ./.github/ + CLICKHOUSE_DB: "xapi" + CLICKHOUSE_USER: "ch_admin" + CLICKHOUSE_PASSWORD: "ch_password" + TUTOR_ROOT: ./.ci/ + +jobs: + build: + name: Deploy dbt docs to github pages + runs-on: ubuntu-latest + permissions: + contents: "read" + id-token: "write" + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + token: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11.x" + - name: Install dependencies + run: | + pip install tutor-contrib-aspects + pip install -r requirements/dbt.txt + cd dbt + dbt deps + - name: Initialize Open edX + continue-on-error: true + run: | + tutor plugins enable aspects + tutor config save + tutor local start -d + tutor local do init -l aspects + tutor local do load-xapi-test-data + - name: Build docs + run: | + dbt run + dbt docs generate + - name: Deploy + if: github.event_name == 'push' + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.SEMANTIC_RELEASE_GITHUB_TOKEN }} + publish_dir: ./target + commit_message: "docs: update docs for " diff --git a/.github/workflows/ci-dbt-format.yml b/.github/workflows/ci-dbt-format.yml new file mode 100644 index 0000000..37667c7 --- /dev/null +++ b/.github/workflows/ci-dbt-format.yml @@ -0,0 +1,23 @@ +name: Validate SQL format + +on: + - pull_request + +jobs: + format: + name: Validate SQL format + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11.x" + - name: Install dependencies + run: | + pip install -r requirements/dbt.txt + - name: Format SQL + run: | + cd dbt + sqlfmt models macros --check diff --git a/.github/workflows/ci-xapi.yml b/.github/workflows/ci-python.yml similarity index 100% rename from .github/workflows/ci-xapi.yml rename to .github/workflows/ci-python.yml diff --git a/.gitignore b/.gitignore index 2412313..acbe684 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,14 @@ -build -docs/_build +__pycache__/ .DS_Store +.coverage .idea/ .python-version -.coverage +.tox/ +.venv *.pyc *.egg-info/ -tests/__init__.py -.tox/ +**/tests/__init__.py +build coverage.xml dist/ -.venv -.dir-locals.el -*/private_configs/ -*/logs/ -__pycache__/ -dbt/target/ -dbt/dbt_packages/ -dbt/logs/ -coverage.json +docs/_build diff --git a/Makefile b/Makefile index 4f913a6..5cf76f5 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,7 @@ upgrade: ## update the requirements/*.txt files with the latest packages satisfy $(PIP_COMPILE) -o requirements/quality.txt requirements/quality.in $(PIP_COMPILE) -o requirements/ci.txt requirements/ci.in $(PIP_COMPILE) -o requirements/dev.txt requirements/dev.in + $(PIP_COMPILE) -o requirements/dbt.txt requirements/dbt.in requirements: pip install -r requirements/pip-tools.txt @@ -38,7 +39,11 @@ requirements: dev-requirements: pip install -r requirements/pip-tools.txt - pip-sync requirements/base.txt requirements/dev.txt + pip-sync requirements/base.txt requirements/dev.txt requirements/dbt.txt + +dbt-requirements: + pip install -r requirements/pip-tools.txt + pip-sync requirements/dbt.txt quality: ## check coding style with pycodestyle and pylint pylint aspects/ *.py @@ -69,11 +74,17 @@ clean: ## remove generated byte code, coverage reports, and build artifacts test: clean ## run tests in the current virtualenv pytest -test-all: quality clean## run tests on every supported Python/Django combination +test-all: quality clean ## run tests on every supported Python/Django combination tox validate: quality test ## run tests and quality checks +dbt-format: + sqlfmt dbt/models dbt/macros + +dbt-coverage: ## Must be run after a dbt compile or run as it needs manifest.json + dbt-coverage compute doc --cov-fail-under 1.0 + selfcheck: ## check that the Makefile is well-formed @echo "The Makefile is well-formed." diff --git a/dbt b/dbt new file mode 160000 index 0000000..ee5b022 --- /dev/null +++ b/dbt @@ -0,0 +1 @@ +Subproject commit ee5b0222a0aa4a2e11f97ef9c5adc0de3f68d920 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..eea6167 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,2 @@ +[tool.sqlfmt] +dialect="clickhouse" diff --git a/requirements/base.in b/requirements/base.in index 9a16142..7f270a1 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -2,7 +2,7 @@ -c constraints.txt click -clickhouse-connect>=0.5,<0.7 +clickhouse-connect pyyaml requests smart_open[s3] diff --git a/requirements/base.txt b/requirements/base.txt index f93cf1f..7cf6478 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,22 +1,26 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via sphinx +anyio==4.6.2.post1 + # via + # starlette + # watchfiles babel==2.16.0 # via # pydata-sphinx-theme # sphinx beautifulsoup4==4.12.3 # via pydata-sphinx-theme -boto3==1.35.47 +boto3==1.35.48 # via smart-open -botocore==1.35.47 +botocore==1.35.48 # via # boto3 # s3transfer @@ -27,39 +31,41 @@ certifi==2024.8.30 charset-normalizer==3.4.0 # via requests click==8.1.7 - # via -r requirements/base.in + # via + # -r requirements/base.in + # uvicorn clickhouse-connect==0.6.23 - # via -r requirements/base.in + # via + # -c requirements/constraints.txt + # -r requirements/base.in colorama==0.4.6 # via sphinx-autobuild -docutils==0.17.1 +docutils==0.21.2 # via # pydata-sphinx-theme # sphinx # sphinx-panels +h11==0.14.0 + # via uvicorn idna==3.10 - # via requests + # via + # anyio + # requests imagesize==1.4.1 # via sphinx -importlib-metadata==8.5.0 - # via sphinx jinja2==3.1.4 # via sphinx jmespath==1.0.1 # via # boto3 # botocore -livereload==2.7.0 - # via sphinx-autobuild lz4==4.3.3 # via clickhouse-connect -markupsafe==2.1.5 +markupsafe==3.0.2 # via jinja2 packaging==24.1 - # via - # pydata-sphinx-theme - # sphinx -pydata-sphinx-theme==0.13.3 + # via sphinx +pydata-sphinx-theme==0.16.0 # via sphinx-book-theme pygments==2.18.0 # via @@ -69,9 +75,7 @@ pygments==2.18.0 python-dateutil==2.9.0.post0 # via botocore pytz==2024.2 - # via - # babel - # clickhouse-connect + # via clickhouse-connect pyyaml==6.0.2 # via # -r requirements/base.in @@ -87,11 +91,13 @@ six==1.16.0 # via python-dateutil smart-open[s3]==7.0.5 # via -r requirements/base.in +sniffio==1.3.1 + # via anyio snowballstemmer==2.2.0 # via sphinx soupsieve==2.6 # via beautifulsoup4 -sphinx==4.5.0 +sphinx==8.1.3 # via # -r requirements/base.in # pydata-sphinx-theme @@ -103,21 +109,21 @@ sphinx==4.5.0 # sphinxcontrib-images # sphinxcontrib-mermaid # sphinxcontrib-yt -sphinx-autobuild==2021.3.14 +sphinx-autobuild==2024.10.3 # via -r requirements/base.in -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/base.in sphinx-copybutton==0.5.2 # via -r requirements/base.in -sphinx-panels==0.6.0 +sphinx-panels==0.4.1 # via -r requirements/base.in -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via sphinx sphinxcontrib-contentui==0.2.5 # via -r requirements/base.in -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-images==0.9.4 # via -r requirements/base.in @@ -125,24 +131,28 @@ sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-mermaid==1.0.0 # via -r requirements/base.in -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx sphinxcontrib-yt==0.2.2 # via -r requirements/base.in -tornado==6.4.1 - # via livereload +starlette==0.41.0 + # via sphinx-autobuild typing-extensions==4.12.2 # via pydata-sphinx-theme -urllib3==1.26.20 +urllib3==2.2.3 # via # botocore # clickhouse-connect # requests +uvicorn==0.32.0 + # via sphinx-autobuild +watchfiles==0.24.0 + # via sphinx-autobuild +websockets==13.1 + # via sphinx-autobuild wrapt==1.16.0 # via smart-open -zipp==3.20.2 - # via importlib-metadata zstandard==0.23.0 # via clickhouse-connect diff --git a/requirements/ci.txt b/requirements/ci.txt index e3265e7..deec652 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -28,13 +28,7 @@ pluggy==1.5.0 # via tox pyproject-api==1.8.0 # via tox -tomli==2.0.2 - # via - # pyproject-api - # tox tox==4.23.2 # via -r requirements/ci.in -typing-extensions==4.12.2 - # via tox virtualenv==20.27.0 # via tox diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 6d20fa4..123fe72 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -9,4 +9,9 @@ # linking to it here is good. # Common constraints for edx repos --c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt \ No newline at end of file +-c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + +clickhouse-connect>=0.5,<0.7 # This has a tendency to break on minor version updates +dbt-clickhouse==1.8.1 # We are tightly bound to this, and it breaks on even patch changes +dbt-core~=1.8.0 # dbt-clickhouse is tightly bound to this +shandy-sqlfmt[jinjafmt]~=0.21.2 # Not sure why this is pinned diff --git a/requirements/dbt.in b/requirements/dbt.in new file mode 100644 index 0000000..132d165 --- /dev/null +++ b/requirements/dbt.in @@ -0,0 +1,8 @@ +# Core requirements for using this application +-c constraints.txt + +dbt-clickhouse +dbt-core +shandy-sqlfmt[jinjafmt] +dbt-coverage +clickhouse-cityhash diff --git a/requirements/dbt.txt b/requirements/dbt.txt new file mode 100644 index 0000000..597c136 --- /dev/null +++ b/requirements/dbt.txt @@ -0,0 +1,219 @@ +# +# This file is autogenerated by pip-compile with Python 3.11 +# by the following command: +# +# make upgrade +# +agate==1.9.1 + # via + # dbt-adapters + # dbt-common + # dbt-core +annotated-types==0.7.0 + # via pydantic +attrs==24.2.0 + # via + # jsonschema + # referencing +babel==2.16.0 + # via agate +black==24.10.0 + # via shandy-sqlfmt +certifi==2024.8.30 + # via + # clickhouse-connect + # requests +charset-normalizer==3.4.0 + # via requests +click==8.1.7 + # via + # black + # dbt-core + # dbt-semantic-interfaces + # shandy-sqlfmt + # typer +clickhouse-cityhash==1.0.2.4 + # via -r requirements/dbt.in +clickhouse-connect==0.6.23 + # via + # -c requirements/constraints.txt + # dbt-clickhouse +clickhouse-driver==0.2.9 + # via dbt-clickhouse +colorama==0.4.6 + # via dbt-common +daff==1.3.46 + # via dbt-core +dbt-adapters==1.7.0 + # via dbt-core +dbt-clickhouse==1.8.1 + # via + # -c requirements/constraints.txt + # -r requirements/dbt.in +dbt-common==1.10.0 + # via + # dbt-adapters + # dbt-core +dbt-core==1.8.8 + # via + # -c requirements/constraints.txt + # -r requirements/dbt.in + # dbt-clickhouse +dbt-coverage==0.3.8 + # via -r requirements/dbt.in +dbt-extractor==0.5.1 + # via dbt-core +dbt-semantic-interfaces==0.5.1 + # via dbt-core +deepdiff==7.0.1 + # via dbt-common +idna==3.10 + # via requests +importlib-metadata==6.11.0 + # via dbt-semantic-interfaces +isodate==0.6.1 + # via + # agate + # dbt-common +jinja2==3.1.4 + # via + # dbt-common + # dbt-core + # dbt-semantic-interfaces + # shandy-sqlfmt +jsonschema==4.23.0 + # via + # dbt-common + # dbt-semantic-interfaces +jsonschema-specifications==2024.10.1 + # via jsonschema +leather==0.4.0 + # via agate +logbook==1.5.3 + # via dbt-core +lz4==4.3.3 + # via clickhouse-connect +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +mashumaro[msgpack]==3.14 + # via + # dbt-adapters + # dbt-common + # dbt-core +mdurl==0.1.2 + # via markdown-it-py +minimal-snowplow-tracker==0.0.2 + # via dbt-core +more-itertools==10.5.0 + # via dbt-semantic-interfaces +msgpack==1.1.0 + # via mashumaro +mypy-extensions==1.0.0 + # via black +networkx==3.4.2 + # via dbt-core +ordered-set==4.1.0 + # via deepdiff +packaging==24.1 + # via + # black + # dbt-core +parsedatetime==2.6 + # via agate +pathspec==0.12.1 + # via + # black + # dbt-common + # dbt-core +platformdirs==4.3.6 + # via + # black + # shandy-sqlfmt +protobuf==4.25.5 + # via + # dbt-adapters + # dbt-common + # dbt-core +pydantic==2.9.2 + # via dbt-semantic-interfaces +pydantic-core==2.23.4 + # via pydantic +pygments==2.18.0 + # via rich +python-dateutil==2.9.0.post0 + # via + # dbt-common + # dbt-semantic-interfaces +python-slugify==8.0.4 + # via agate +pytimeparse==1.1.8 + # via agate +pytz==2024.2 + # via + # clickhouse-connect + # clickhouse-driver + # dbt-adapters + # dbt-core +pyyaml==6.0.2 + # via + # dbt-core + # dbt-semantic-interfaces +referencing==0.35.1 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # dbt-common + # dbt-core + # minimal-snowplow-tracker +rich==13.9.3 + # via typer +rpds-py==0.20.0 + # via + # jsonschema + # referencing +shandy-sqlfmt[jinjafmt]==0.21.4 + # via + # -c requirements/constraints.txt + # -r requirements/dbt.in +shellingham==1.5.4 + # via typer +six==1.16.0 + # via + # isodate + # minimal-snowplow-tracker + # python-dateutil +sqlparse==0.5.1 + # via dbt-core +text-unidecode==1.3 + # via python-slugify +tqdm==4.66.5 + # via shandy-sqlfmt +typer==0.12.5 + # via dbt-coverage +typing-extensions==4.12.2 + # via + # dbt-adapters + # dbt-common + # dbt-core + # dbt-semantic-interfaces + # mashumaro + # pydantic + # pydantic-core + # typer +tzlocal==5.2 + # via clickhouse-driver +urllib3==2.2.3 + # via + # clickhouse-connect + # requests +zipp==3.20.2 + # via importlib-metadata +zstandard==0.23.0 + # via clickhouse-connect + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/dev.txt b/requirements/dev.txt index 13a7403..9332fea 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,18 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via # -r requirements/quality.txt # pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via # -r requirements/quality.txt # sphinx -astroid==3.2.4 +anyio==4.6.2.post1 + # via + # -r requirements/quality.txt + # starlette + # watchfiles +astroid==3.3.5 # via # -r requirements/quality.txt # pylint @@ -30,11 +35,11 @@ beautifulsoup4==4.12.3 # via # -r requirements/quality.txt # pydata-sphinx-theme -boto3==1.35.47 +boto3==1.35.48 # via # -r requirements/quality.txt # smart-open -botocore==1.35.47 +botocore==1.35.48 # via # -r requirements/quality.txt # boto3 @@ -69,12 +74,15 @@ click==8.1.7 # code-annotations # edx-lint # pip-tools + # uvicorn click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint clickhouse-connect==0.6.23 - # via -r requirements/quality.txt + # via + # -c requirements/constraints.txt + # -r requirements/quality.txt code-annotations==1.8.0 # via # -r requirements/quality.txt @@ -85,7 +93,7 @@ colorama==0.4.6 # -r requirements/quality.txt # sphinx-autobuild # tox -coverage[toml]==7.6.1 +coverage[toml]==7.6.4 # via # -r requirements/quality.txt # pytest-cov @@ -99,7 +107,7 @@ distlib==0.3.9 # via # -r requirements/ci.txt # virtualenv -docutils==0.17.1 +docutils==0.21.2 # via # -r requirements/quality.txt # pydata-sphinx-theme @@ -108,18 +116,19 @@ docutils==0.17.1 # sphinx-panels edx-lint==5.4.0 # via -r requirements/quality.txt -exceptiongroup==1.2.2 - # via - # -r requirements/quality.txt - # pytest filelock==3.16.1 # via # -r requirements/ci.txt # tox # virtualenv +h11==0.14.0 + # via + # -r requirements/quality.txt + # uvicorn idna==3.10 # via # -r requirements/quality.txt + # anyio # requests imagesize==1.4.1 # via @@ -127,16 +136,9 @@ imagesize==1.4.1 # sphinx importlib-metadata==8.5.0 # via - # -r requirements/pip-tools.txt # -r requirements/quality.txt - # build # keyring - # sphinx # twine -importlib-resources==6.4.5 - # via - # -r requirements/quality.txt - # keyring iniconfig==2.0.0 # via # -r requirements/quality.txt @@ -172,10 +174,6 @@ keyring==25.4.1 # via # -r requirements/quality.txt # twine -livereload==2.7.0 - # via - # -r requirements/quality.txt - # sphinx-autobuild lz4==4.3.3 # via # -r requirements/quality.txt @@ -184,7 +182,7 @@ markdown-it-py==3.0.0 # via # -r requirements/quality.txt # rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/quality.txt # jinja2 @@ -211,7 +209,6 @@ packaging==24.1 # -r requirements/pip-tools.txt # -r requirements/quality.txt # build - # pydata-sphinx-theme # pyproject-api # pytest # sphinx @@ -242,7 +239,7 @@ pluggy==1.5.0 # tox pycodestyle==2.12.1 # via -r requirements/quality.txt -pydata-sphinx-theme==0.13.3 +pydata-sphinx-theme==0.16.0 # via # -r requirements/quality.txt # sphinx-book-theme @@ -257,7 +254,7 @@ pygments==2.18.0 # readme-renderer # rich # sphinx -pylint==3.2.7 +pylint==3.3.1 # via # -r requirements/quality.txt # edx-lint @@ -268,7 +265,7 @@ pylint-celery==0.3 # via # -r requirements/quality.txt # edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via # -r requirements/quality.txt # edx-lint @@ -303,14 +300,13 @@ python-slugify==8.0.4 pytz==2024.2 # via # -r requirements/quality.txt - # babel # clickhouse-connect pyyaml==6.0.2 # via # -r requirements/quality.txt # code-annotations # sphinxcontrib-mermaid -readme-renderer==43.0 +readme-renderer==44.0 # via # -r requirements/quality.txt # twine @@ -344,6 +340,10 @@ six==1.16.0 # python-dateutil smart-open[s3]==7.0.5 # via -r requirements/quality.txt +sniffio==1.3.1 + # via + # -r requirements/quality.txt + # anyio snowballstemmer==2.2.0 # via # -r requirements/quality.txt @@ -353,7 +353,7 @@ soupsieve==2.6 # via # -r requirements/quality.txt # beautifulsoup4 -sphinx==4.5.0 +sphinx==8.1.3 # via # -r requirements/quality.txt # pydata-sphinx-theme @@ -365,25 +365,25 @@ sphinx==4.5.0 # sphinxcontrib-images # sphinxcontrib-mermaid # sphinxcontrib-yt -sphinx-autobuild==2021.3.14 +sphinx-autobuild==2024.10.3 # via -r requirements/quality.txt -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/quality.txt sphinx-copybutton==0.5.2 # via -r requirements/quality.txt -sphinx-panels==0.6.0 +sphinx-panels==0.4.1 # via -r requirements/quality.txt -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via # -r requirements/quality.txt # sphinx sphinxcontrib-contentui==0.2.5 # via -r requirements/quality.txt -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via # -r requirements/quality.txt # sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via # -r requirements/quality.txt # sphinx @@ -395,16 +395,20 @@ sphinxcontrib-jsmath==1.0.1 # sphinx sphinxcontrib-mermaid==1.0.0 # via -r requirements/quality.txt -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via # -r requirements/quality.txt # sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via # -r requirements/quality.txt # sphinx sphinxcontrib-yt==0.2.2 # via -r requirements/quality.txt +starlette==0.41.0 + # via + # -r requirements/quality.txt + # sphinx-autobuild stevedore==5.3.0 # via # -r requirements/quality.txt @@ -413,50 +417,41 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomli==2.0.2 - # via - # -r requirements/ci.txt - # -r requirements/pip-tools.txt - # -r requirements/quality.txt - # build - # coverage - # pip-tools - # pylint - # pyproject-api - # pytest - # tox tomlkit==0.13.2 # via # -r requirements/quality.txt # pylint -tornado==6.4.1 - # via - # -r requirements/quality.txt - # livereload tox==4.23.2 # via -r requirements/ci.txt twine==5.1.1 # via -r requirements/quality.txt typing-extensions==4.12.2 # via - # -r requirements/ci.txt # -r requirements/quality.txt - # astroid # pydata-sphinx-theme - # pylint - # rich - # tox -urllib3==1.26.20 +urllib3==2.2.3 # via # -r requirements/quality.txt # botocore # clickhouse-connect # requests # twine +uvicorn==0.32.0 + # via + # -r requirements/quality.txt + # sphinx-autobuild virtualenv==20.27.0 # via # -r requirements/ci.txt # tox +watchfiles==0.24.0 + # via + # -r requirements/quality.txt + # sphinx-autobuild +websockets==13.1 + # via + # -r requirements/quality.txt + # sphinx-autobuild wheel==0.44.0 # via # -r requirements/pip-tools.txt @@ -467,10 +462,8 @@ wrapt==1.16.0 # smart-open zipp==3.20.2 # via - # -r requirements/pip-tools.txt # -r requirements/quality.txt # importlib-metadata - # importlib-resources zstandard==0.23.0 # via # -r requirements/quality.txt diff --git a/requirements/docs.txt b/requirements/docs.txt index 4ca9ddb..ca2c8de 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,13 +1,17 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via sphinx +anyio==4.6.2.post1 + # via + # starlette + # watchfiles babel==2.16.0 # via # pydata-sphinx-theme @@ -18,46 +22,46 @@ certifi==2024.8.30 # via requests charset-normalizer==3.4.0 # via requests +click==8.1.7 + # via uvicorn colorama==0.4.6 # via sphinx-autobuild -docutils==0.19 +docutils==0.21.2 # via # pydata-sphinx-theme # sphinx +h11==0.14.0 + # via uvicorn idna==3.10 - # via requests + # via + # anyio + # requests imagesize==1.4.1 # via sphinx -importlib-metadata==8.5.0 - # via sphinx jinja2==3.1.4 # via sphinx -livereload==2.7.0 - # via sphinx-autobuild -markupsafe==2.1.5 +markupsafe==3.0.2 # via jinja2 packaging==24.1 - # via - # pydata-sphinx-theme - # sphinx -pydata-sphinx-theme==0.14.4 + # via sphinx +pydata-sphinx-theme==0.16.0 # via sphinx-book-theme pygments==2.18.0 # via # accessible-pygments # pydata-sphinx-theme # sphinx -pytz==2024.2 - # via babel pyyaml==6.0.2 # via sphinxcontrib-mermaid requests==2.32.3 # via sphinx +sniffio==1.3.1 + # via anyio snowballstemmer==2.2.0 # via sphinx soupsieve==2.6 # via beautifulsoup4 -sphinx==6.2.1 +sphinx==8.1.3 # via # -r requirements/docs.in # pydata-sphinx-theme @@ -66,33 +70,37 @@ sphinx==6.2.1 # sphinx-copybutton # sphinxcontrib-contentui # sphinxcontrib-mermaid -sphinx-autobuild==2021.3.14 +sphinx-autobuild==2024.10.3 # via -r requirements/docs.in -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/docs.in sphinx-copybutton==0.5.2 # via -r requirements/docs.in -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via sphinx sphinxcontrib-contentui==0.2.5 # via -r requirements/docs.in -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-mermaid==1.0.0 # via -r requirements/docs.in -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx -tornado==6.4.1 - # via livereload +starlette==0.41.0 + # via sphinx-autobuild typing-extensions==4.12.2 # via pydata-sphinx-theme urllib3==2.2.3 # via requests -zipp==3.20.2 - # via importlib-metadata +uvicorn==0.32.0 + # via sphinx-autobuild +watchfiles==0.24.0 + # via sphinx-autobuild +websockets==13.1 + # via sphinx-autobuild diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index c939293..db6c463 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -8,8 +8,6 @@ build==1.2.2.post1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==8.5.0 - # via build packaging==24.1 # via build pip-tools==7.4.1 @@ -18,14 +16,8 @@ pyproject-hooks==1.2.0 # via # build # pip-tools -tomli==2.0.2 - # via - # build - # pip-tools wheel==0.44.0 # via pip-tools -zipp==3.20.2 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index 502856e..346a061 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade diff --git a/requirements/quality.txt b/requirements/quality.txt index 9c7efb8..fda98db 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -1,18 +1,23 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via # -r requirements/test.txt # pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via # -r requirements/test.txt # sphinx -astroid==3.2.4 +anyio==4.6.2.post1 + # via + # -r requirements/test.txt + # starlette + # watchfiles +astroid==3.3.5 # via # pylint # pylint-celery @@ -27,11 +32,11 @@ beautifulsoup4==4.12.3 # via # -r requirements/test.txt # pydata-sphinx-theme -boto3==1.35.47 +boto3==1.35.48 # via # -r requirements/test.txt # smart-open -botocore==1.35.47 +botocore==1.35.48 # via # -r requirements/test.txt # boto3 @@ -51,23 +56,26 @@ click==8.1.7 # click-log # code-annotations # edx-lint + # uvicorn click-log==0.4.0 # via edx-lint clickhouse-connect==0.6.23 - # via -r requirements/test.txt + # via + # -c requirements/constraints.txt + # -r requirements/test.txt code-annotations==1.8.0 # via edx-lint colorama==0.4.6 # via # -r requirements/test.txt # sphinx-autobuild -coverage[toml]==7.6.1 +coverage[toml]==7.6.4 # via # -r requirements/test.txt # pytest-cov dill==0.3.9 # via pylint -docutils==0.17.1 +docutils==0.21.2 # via # -r requirements/test.txt # pydata-sphinx-theme @@ -76,13 +84,14 @@ docutils==0.17.1 # sphinx-panels edx-lint==5.4.0 # via -r requirements/quality.in -exceptiongroup==1.2.2 +h11==0.14.0 # via # -r requirements/test.txt - # pytest + # uvicorn idna==3.10 # via # -r requirements/test.txt + # anyio # requests imagesize==1.4.1 # via @@ -90,12 +99,8 @@ imagesize==1.4.1 # sphinx importlib-metadata==8.5.0 # via - # -r requirements/test.txt # keyring - # sphinx # twine -importlib-resources==6.4.5 - # via keyring iniconfig==2.0.0 # via # -r requirements/test.txt @@ -122,17 +127,13 @@ jmespath==1.0.1 # botocore keyring==25.4.1 # via twine -livereload==2.7.0 - # via - # -r requirements/test.txt - # sphinx-autobuild lz4==4.3.3 # via # -r requirements/test.txt # clickhouse-connect markdown-it-py==3.0.0 # via rich -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/test.txt # jinja2 @@ -149,7 +150,6 @@ nh3==0.2.18 packaging==24.1 # via # -r requirements/test.txt - # pydata-sphinx-theme # pytest # sphinx pbr==6.1.0 @@ -164,7 +164,7 @@ pluggy==1.5.0 # pytest pycodestyle==2.12.1 # via -r requirements/quality.in -pydata-sphinx-theme==0.13.3 +pydata-sphinx-theme==0.16.0 # via # -r requirements/test.txt # sphinx-book-theme @@ -178,7 +178,7 @@ pygments==2.18.0 # readme-renderer # rich # sphinx -pylint==3.2.7 +pylint==3.3.1 # via # edx-lint # pylint-celery @@ -186,7 +186,7 @@ pylint==3.2.7 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.5.5 +pylint-django==2.6.1 # via edx-lint pylint-plugin-utils==0.8.2 # via @@ -207,14 +207,13 @@ python-slugify==8.0.4 pytz==2024.2 # via # -r requirements/test.txt - # babel # clickhouse-connect pyyaml==6.0.2 # via # -r requirements/test.txt # code-annotations # sphinxcontrib-mermaid -readme-renderer==43.0 +readme-renderer==44.0 # via twine requests==2.32.3 # via @@ -240,6 +239,10 @@ six==1.16.0 # python-dateutil smart-open[s3]==7.0.5 # via -r requirements/test.txt +sniffio==1.3.1 + # via + # -r requirements/test.txt + # anyio snowballstemmer==2.2.0 # via # -r requirements/test.txt @@ -249,7 +252,7 @@ soupsieve==2.6 # via # -r requirements/test.txt # beautifulsoup4 -sphinx==4.5.0 +sphinx==8.1.3 # via # -r requirements/test.txt # pydata-sphinx-theme @@ -261,25 +264,25 @@ sphinx==4.5.0 # sphinxcontrib-images # sphinxcontrib-mermaid # sphinxcontrib-yt -sphinx-autobuild==2021.3.14 +sphinx-autobuild==2024.10.3 # via -r requirements/test.txt -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/test.txt sphinx-copybutton==0.5.2 # via -r requirements/test.txt -sphinx-panels==0.6.0 +sphinx-panels==0.4.1 # via -r requirements/test.txt -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via # -r requirements/test.txt # sphinx sphinxcontrib-contentui==0.2.5 # via -r requirements/test.txt -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via # -r requirements/test.txt # sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via # -r requirements/test.txt # sphinx @@ -291,57 +294,57 @@ sphinxcontrib-jsmath==1.0.1 # sphinx sphinxcontrib-mermaid==1.0.0 # via -r requirements/test.txt -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via # -r requirements/test.txt # sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via # -r requirements/test.txt # sphinx sphinxcontrib-yt==0.2.2 # via -r requirements/test.txt +starlette==0.41.0 + # via + # -r requirements/test.txt + # sphinx-autobuild stevedore==5.3.0 # via code-annotations text-unidecode==1.3 # via python-slugify -tomli==2.0.2 - # via - # -r requirements/test.txt - # coverage - # pylint - # pytest tomlkit==0.13.2 # via pylint -tornado==6.4.1 - # via - # -r requirements/test.txt - # livereload twine==5.1.1 # via -r requirements/quality.in typing-extensions==4.12.2 # via # -r requirements/test.txt - # astroid # pydata-sphinx-theme - # pylint - # rich -urllib3==1.26.20 +urllib3==2.2.3 # via # -r requirements/test.txt # botocore # clickhouse-connect # requests # twine +uvicorn==0.32.0 + # via + # -r requirements/test.txt + # sphinx-autobuild +watchfiles==0.24.0 + # via + # -r requirements/test.txt + # sphinx-autobuild +websockets==13.1 + # via + # -r requirements/test.txt + # sphinx-autobuild wrapt==1.16.0 # via # -r requirements/test.txt # smart-open zipp==3.20.2 - # via - # -r requirements/test.txt - # importlib-metadata - # importlib-resources + # via importlib-metadata zstandard==0.23.0 # via # -r requirements/test.txt diff --git a/requirements/test.txt b/requirements/test.txt index e75f0be..c0c89df 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,17 +1,22 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via # -r requirements/base.txt # pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via # -r requirements/base.txt # sphinx +anyio==4.6.2.post1 + # via + # -r requirements/base.txt + # starlette + # watchfiles babel==2.16.0 # via # -r requirements/base.txt @@ -21,11 +26,11 @@ beautifulsoup4==4.12.3 # via # -r requirements/base.txt # pydata-sphinx-theme -boto3==1.35.47 +boto3==1.35.48 # via # -r requirements/base.txt # smart-open -botocore==1.35.47 +botocore==1.35.48 # via # -r requirements/base.txt # boto3 @@ -40,35 +45,38 @@ charset-normalizer==3.4.0 # -r requirements/base.txt # requests click==8.1.7 - # via -r requirements/base.txt + # via + # -r requirements/base.txt + # uvicorn clickhouse-connect==0.6.23 - # via -r requirements/base.txt + # via + # -c requirements/constraints.txt + # -r requirements/base.txt colorama==0.4.6 # via # -r requirements/base.txt # sphinx-autobuild -coverage[toml]==7.6.1 +coverage[toml]==7.6.4 # via pytest-cov -docutils==0.17.1 +docutils==0.21.2 # via # -r requirements/base.txt # pydata-sphinx-theme # sphinx # sphinx-panels -exceptiongroup==1.2.2 - # via pytest +h11==0.14.0 + # via + # -r requirements/base.txt + # uvicorn idna==3.10 # via # -r requirements/base.txt + # anyio # requests imagesize==1.4.1 # via # -r requirements/base.txt # sphinx -importlib-metadata==8.5.0 - # via - # -r requirements/base.txt - # sphinx iniconfig==2.0.0 # via pytest jinja2==3.1.4 @@ -80,27 +88,22 @@ jmespath==1.0.1 # -r requirements/base.txt # boto3 # botocore -livereload==2.7.0 - # via - # -r requirements/base.txt - # sphinx-autobuild lz4==4.3.3 # via # -r requirements/base.txt # clickhouse-connect -markupsafe==2.1.5 +markupsafe==3.0.2 # via # -r requirements/base.txt # jinja2 packaging==24.1 # via # -r requirements/base.txt - # pydata-sphinx-theme # pytest # sphinx pluggy==1.5.0 # via pytest -pydata-sphinx-theme==0.13.3 +pydata-sphinx-theme==0.16.0 # via # -r requirements/base.txt # sphinx-book-theme @@ -121,7 +124,6 @@ python-dateutil==2.9.0.post0 pytz==2024.2 # via # -r requirements/base.txt - # babel # clickhouse-connect pyyaml==6.0.2 # via @@ -142,6 +144,10 @@ six==1.16.0 # python-dateutil smart-open[s3]==7.0.5 # via -r requirements/base.txt +sniffio==1.3.1 + # via + # -r requirements/base.txt + # anyio snowballstemmer==2.2.0 # via # -r requirements/base.txt @@ -150,7 +156,7 @@ soupsieve==2.6 # via # -r requirements/base.txt # beautifulsoup4 -sphinx==4.5.0 +sphinx==8.1.3 # via # -r requirements/base.txt # pydata-sphinx-theme @@ -162,25 +168,25 @@ sphinx==4.5.0 # sphinxcontrib-images # sphinxcontrib-mermaid # sphinxcontrib-yt -sphinx-autobuild==2021.3.14 +sphinx-autobuild==2024.10.3 # via -r requirements/base.txt -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/base.txt sphinx-copybutton==0.5.2 # via -r requirements/base.txt -sphinx-panels==0.6.0 +sphinx-panels==0.4.1 # via -r requirements/base.txt -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via # -r requirements/base.txt # sphinx sphinxcontrib-contentui==0.2.5 # via -r requirements/base.txt -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via # -r requirements/base.txt # sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via # -r requirements/base.txt # sphinx @@ -192,42 +198,46 @@ sphinxcontrib-jsmath==1.0.1 # sphinx sphinxcontrib-mermaid==1.0.0 # via -r requirements/base.txt -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via # -r requirements/base.txt # sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via # -r requirements/base.txt # sphinx sphinxcontrib-yt==0.2.2 # via -r requirements/base.txt -tomli==2.0.2 - # via - # coverage - # pytest -tornado==6.4.1 +starlette==0.41.0 # via # -r requirements/base.txt - # livereload + # sphinx-autobuild typing-extensions==4.12.2 # via # -r requirements/base.txt # pydata-sphinx-theme -urllib3==1.26.20 +urllib3==2.2.3 # via # -r requirements/base.txt # botocore # clickhouse-connect # requests -wrapt==1.16.0 +uvicorn==0.32.0 # via # -r requirements/base.txt - # smart-open -zipp==3.20.2 + # sphinx-autobuild +watchfiles==0.24.0 # via # -r requirements/base.txt - # importlib-metadata + # sphinx-autobuild +websockets==13.1 + # via + # -r requirements/base.txt + # sphinx-autobuild +wrapt==1.16.0 + # via + # -r requirements/base.txt + # smart-open zstandard==0.23.0 # via # -r requirements/base.txt