chore: 2nd try - simplify python dependencies (#27505)

This commit is contained in:
Maxime Beauchemin 2024-03-18 18:39:41 -07:00 committed by GitHub
parent f4bdcb5743
commit 56a6660c16
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 621 additions and 610 deletions

View File

@ -0,0 +1,33 @@
name: 'Setup Python Environment'
description: 'Set up Python and install dependencies with optional configurations.'
inputs:
python-version:
description: 'Python version to set up.'
required: true
default: '3.9'
cache:
description: 'Cache dependencies. Options: pip'
required: false
default: 'pip'
requirements-type:
description: 'Type of requirements to install. Options: base, development, default'
required: false
default: 'dev'
runs:
using: 'composite'
steps:
- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}
cache: ${{ inputs.cache }}
- name: Install dependencies
run: |
pip install --upgrade pip setuptools wheel
if [ "${{ inputs.requirements-type }}" = "dev" ]; then
pip install -r requirements/development.txt
elif [ "${{ inputs.requirements-type }}" = "base" ]; then
pip install -r requirements/base.txt
fi
shell: bash

View File

@ -26,24 +26,9 @@ jobs:
persist-credentials: false
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: |
requirements/base.txt
requirements/integration.txt
- name: Install dependencies
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/base.txt
pip install -r requirements/integration.txt
# Add brew to the path - see https://github.com/actions/runner-images/issues/6283
uses: ./.github/actions/setup-backend/
- name: Enable brew and helm-docs
# Add brew to the path - see https://github.com/actions/runner-images/issues/6283
run: |
echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

View File

@ -58,23 +58,7 @@ jobs:
submodules: recursive
ref: master
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.9"
- name: OS dependencies
uses: ./.github/actions/cached-dependencies
with:
run: apt-get-install
- name: Install python dependencies
uses: ./.github/actions/cached-dependencies
with:
run: |
pip-upgrade
pip install -r requirements/testing.txt
- name: Setup postgres
uses: ./.github/actions/cached-dependencies
with:
run: setup-postgres
uses: ./.github/actions/setup-backend/
- name: Import test data
uses: ./.github/actions/cached-dependencies
with:
@ -91,6 +75,11 @@ jobs:
uses: ./.github/actions/cached-dependencies
with:
run: build-instrumented-assets
- name: Setup Postgres
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: setup-postgres
- name: Install cypress
uses: ./.github/actions/cached-dependencies
with:

View File

@ -52,22 +52,13 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
- name: Install dependencies
- name: Setup Postgres
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
setup-postgres
run: setup-postgres
- name: superset init
if: steps.check.outcome == 'failure'
run: |

View File

@ -69,21 +69,15 @@ jobs:
run: ./scripts/ci_check_no_file_changes.sh python frontend
- name: Setup Python
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: "3.9"
uses: ./.github/actions/setup-backend/
- name: OS dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: apt-get-install
- name: Install python dependencies
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
pip-upgrade
pip install -r requirements/testing.txt
- name: Setup postgres
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies

View File

@ -51,21 +51,15 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
- name: Install dependencies
- name: Setup MySQL
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
setup-mysql
- name: Run celery
if: steps.check.outcome == 'failure'
@ -78,7 +72,6 @@ jobs:
if: steps.check.outcome == 'failure'
run: |
bash .github/workflows/codecov.sh -c -F python -F mysql
test-postgres:
runs-on: ubuntu-20.04
strategy:
@ -117,21 +110,15 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
- name: Install dependencies
- name: Setup Postgres
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
setup-postgres
- name: Run celery
if: steps.check.outcome == 'failure'
@ -177,21 +164,16 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
- name: Install dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
# sqlite needs this working directory
mkdir ${{ github.workspace }}/.temp
- name: Run celery
if: steps.check.outcome == 'failure'

View File

@ -38,21 +38,10 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
- name: Install dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
- name: pylint
if: steps.check.outcome == 'failure'
# `-j 0` run Pylint in parallel
@ -70,18 +59,8 @@ jobs:
persist-credentials: false
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v5
uses: ./.github/actions/setup-backend/
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/base.txt"
- name: Install dependencies
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/base.txt
- name: Test babel extraction
run: flask fab babel-extract --target superset/translations --output superset/translations/messages.pot --config superset/translations/babel.cfg -k _,__,t,tn,tct

View File

@ -67,22 +67,13 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
- name: Install dependencies
- name: Setup Postgres
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
setup-postgres
run: setup-postgres
- name: Run celery
if: steps.check.outcome == 'failure'
run: celery --app=superset.tasks.celery_app:app worker -Ofair -c 2 &
@ -144,22 +135,13 @@ jobs:
if: steps.check.outcome == 'failure'
run: docker compose -f scripts/databases/hive/docker-compose.yml up -d
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
- name: Install dependencies
- name: Setup Postgres
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
setup-postgres
run: setup-postgres
- name: Run celery
if: steps.check.outcome == 'failure'
run: celery --app=superset.tasks.celery_app:app worker -Ofair -c 2 &

View File

@ -46,27 +46,15 @@ jobs:
continue-on-error: true
run: ./scripts/ci_check_no_file_changes.sh python
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outcome == 'failure'
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
# TODO: separated requirements.txt file just for unit tests
- name: Install dependencies
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: |
apt-get-install
pip-upgrade
pip install wheel
pip install -r requirements/testing.txt
mkdir ${{ github.workspace }}/.temp
- name: Python unit tests
if: steps.check.outcome == 'failure'
env:
SUPERSET_TESTENV: true
SUPERSET_SECRET_KEY: not-a-secret
run: |
pytest --durations-min=0.5 --cov-report= --cov=superset ./tests/common ./tests/unit_tests --cache-clear
- name: Upload code coverage

View File

@ -47,7 +47,7 @@ jobs:
persist-credentials: false
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v5
uses: ./.github/actions/setup-backend/
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies

View File

@ -477,7 +477,7 @@ python3 -m venv venv # setup a python3 virtualenv
source venv/bin/activate
# Install external dependencies
pip install -r requirements/testing.txt
pip install -r requirements/development.txt
# Install Superset in editable (development) mode
pip install -e .
@ -531,7 +531,7 @@ If you add a new requirement or update an existing requirement (per the `install
```bash
$ python3 -m venv venv
$ source venv/bin/activate
$ python3 -m pip install -r requirements/integration.txt
$ python3 -m pip install -r requirements/development.txt
$ pip-compile-multi --no-upgrade
```
@ -749,7 +749,7 @@ The current status of the usability of each flag (stable vs testing, etc) can be
Superset uses Git pre-commit hooks courtesy of [pre-commit](https://pre-commit.com/). To install run the following:
```bash
pip3 install -r requirements/integration.txt
pip3 install -r requirements/development.txt
pre-commit install
```

View File

@ -79,12 +79,10 @@ RUN mkdir -p ${PYTHONPATH} superset/static superset-frontend apache_superset.egg
COPY --chown=superset:superset setup.py MANIFEST.in README.md ./
# setup.py uses the version information in package.json
COPY --chown=superset:superset superset-frontend/package.json superset-frontend/
RUN --mount=type=bind,target=./requirements/local.txt,src=./requirements/local.txt \
--mount=type=bind,target=./requirements/development.txt,src=./requirements/development.txt \
--mount=type=bind,target=./requirements/base.txt,src=./requirements/base.txt \
RUN --mount=type=bind,target=./requirements/base.txt,src=./requirements/base.txt \
--mount=type=cache,target=/root/.cache/pip \
pip install --upgrade setuptools pip && \
pip install -r requirements/local.txt
pip install -r requirements/base.txt
COPY --chown=superset:superset --from=superset-node /app/superset/static/assets superset/static/assets
## Lastly, let's install superset itself
@ -128,10 +126,9 @@ RUN apt-get update -qq \
&& ln -s /opt/firefox/firefox /usr/local/bin/firefox \
&& apt-get autoremove -yqq --purge wget && rm -rf /var/[log,tmp]/* /tmp/* /var/lib/apt/lists/*
# Cache everything for dev purposes...
RUN --mount=type=bind,target=./requirements/base.txt,src=./requirements/base.txt \
--mount=type=bind,target=./requirements/docker.txt,src=./requirements/docker.txt \
RUN --mount=type=bind,target=./requirements/development.txt,src=./requirements/development.txt \
--mount=type=cache,target=/root/.cache/pip \
pip install -r requirements/docker.txt
pip install -r requirements/development.txt
USER superset
######################################################################

View File

@ -24,7 +24,7 @@ install: superset pre-commit
superset:
# Install external dependencies
pip install -r requirements/local.txt
pip install -r requirements/development.txt
# Install Superset in editable (development) mode
pip install -e .
@ -53,7 +53,7 @@ update: update-py update-js
update-py:
# Install external dependencies
pip install -r requirements/local.txt
pip install -r requirements/development.txt
# Install Superset in editable (development) mode
pip install -e .
@ -79,7 +79,7 @@ activate:
pre-commit:
# setup pre commit dependencies
pip3 install -r requirements/integration.txt
pip3 install -r requirements/development.txt
pre-commit install
format: py-format js-format

View File

@ -23,7 +23,10 @@ This file documents any backwards-incompatible changes in Superset and
assists people when migrating to a new version.
## Next
- [27505](https://github.com/apache/superset/pull/27505): We simplified the files under
`requirements/` folder. If you use these files for your builds you may want to double
check that your builds are not affected. `base.txt` should be the same as before, though
`development.txt` becomes a bigger set, incorporating the now defunct local,testing,integration, and docker
- [27119](https://github.com/apache/superset/pull/27119): Updates various database columns to use the `MediumText` type, potentially requiring a table lock on MySQL dbs or taking some time to complete on large deployments.
- [26450](https://github.com/apache/superset/pull/26450): Deprecates the `KV_STORE` feature flag and its related assets such as the API endpoint and `keyvalue` table. The main dependency of this feature is the `SHARE_QUERIES_VIA_KV_STORE` feature flag which allows sharing SQL Lab queries without the necessity of saving the query. Our intention is to use the permalink feature to implement this use case before 5.0 and that's why we are deprecating the feature flag now.

View File

@ -10,7 +10,7 @@ version: 1
Superset uses Git pre-commit hooks courtesy of [pre-commit](https://pre-commit.com/). To install run the following:
```bash
pip3 install -r requirements/integration.txt
pip3 install -r requirements/development.txt
pre-commit install
```

View File

@ -20,7 +20,7 @@ python3 -m venv venv # setup a python3 virtualenv
source venv/bin/activate
# Install external dependencies
pip install -r requirements/testing.txt
pip install -r requirements/development.txt
# Install Superset in editable (development) mode
pip install -e .
@ -75,7 +75,7 @@ If you add a new requirement or update an existing requirement (per the `install
```bash
$ python3 -m venv venv
$ source venv/bin/activate
$ python3 -m pip install -r requirements/integration.txt
$ python3 -m pip install -r requirements/development.txt
$ pip-compile-multi --no-upgrade
```

View File

@ -6,54 +6,92 @@
# pip-compile-multi
#
-e file:.
# via -r requirements/base.in
# via
# -c requirements/development.txt
# -r requirements/base.in
alembic==1.6.5
# via flask-migrate
# via
# -c requirements/development.txt
# flask-migrate
amqp==5.1.1
# via kombu
# via
# -c requirements/development.txt
# kombu
apispec[yaml]==6.3.0
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
apsw==3.42.0.1
# via shillelagh
# via
# -c requirements/development.txt
# shillelagh
async-timeout==4.0.2
# via redis
# via
# -c requirements/development.txt
# redis
attrs==23.1.0
# via
# -c requirements/development.txt
# cattrs
# jsonschema
# requests-cache
babel==2.9.1
# via flask-babel
# via
# -c requirements/development.txt
# flask-babel
backoff==1.11.1
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
bcrypt==4.0.1
# via paramiko
# via
# -c requirements/development.txt
# paramiko
billiard==4.2.0
# via celery
# via
# -c requirements/development.txt
# celery
bottleneck==1.3.7
# via pandas
# via
# -c requirements/development.txt
# pandas
brotli==1.0.9
# via flask-compress
# via
# -c requirements/development.txt
# flask-compress
cachelib==0.9.0
# via
# -c requirements/development.txt
# flask-caching
# flask-session
cachetools==5.3.2
# via google-auth
# via
# -c requirements/development.txt
# google-auth
cattrs==23.2.1
# via requests-cache
# via
# -c requirements/development.txt
# requests-cache
celery==5.3.6
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
certifi==2023.7.22
# via requests
# via
# -c requirements/development.txt
# requests
cffi==1.15.1
# via
# -c requirements/development.txt
# cryptography
# pynacl
charset-normalizer==3.2.0
# via requests
# via
# -c requirements/development.txt
# requests
click==8.1.3
# via
# -c requirements/development.txt
# apache-superset
# celery
# click-didyoumean
@ -63,37 +101,62 @@ click==8.1.3
# flask
# flask-appbuilder
click-didyoumean==0.3.0
# via celery
# via
# -c requirements/development.txt
# celery
click-option-group==0.5.5
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
click-plugins==1.1.1
# via celery
# via
# -c requirements/development.txt
# celery
click-repl==0.2.0
# via celery
# via
# -c requirements/development.txt
# celery
colorama==0.4.6
# via
# -c requirements/development.txt
# apache-superset
# flask-appbuilder
cron-descriptor==1.2.24
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
croniter==1.0.15
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
cryptography==42.0.4
# via
# -c requirements/development.txt
# apache-superset
# paramiko
deprecated==1.2.13
# via limits
# via
# -c requirements/development.txt
# limits
deprecation==2.1.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
dnspython==2.1.0
# via email-validator
# via
# -c requirements/development.txt
# email-validator
email-validator==1.1.3
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
exceptiongroup==1.2.0
# via cattrs
# via
# -c requirements/development.txt
# cattrs
flask==2.2.5
# via
# -c requirements/development.txt
# apache-superset
# flask-appbuilder
# flask-babel
@ -107,118 +170,194 @@ flask==2.2.5
# flask-sqlalchemy
# flask-wtf
flask-appbuilder==4.4.1
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
flask-babel==1.0.0
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
flask-caching==2.1.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
flask-compress==1.13
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
flask-jwt-extended==4.3.1
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
flask-limiter==3.3.1
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
flask-login==0.6.3
# via
# -c requirements/development.txt
# apache-superset
# flask-appbuilder
flask-migrate==3.1.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
flask-session==0.5.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
flask-sqlalchemy==2.5.1
# via
# -c requirements/development.txt
# flask-appbuilder
# flask-migrate
flask-talisman==1.0.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
flask-wtf==1.2.1
# via
# -c requirements/development.txt
# apache-superset
# flask-appbuilder
func-timeout==4.3.5
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
geographiclib==1.52
# via geopy
# via
# -c requirements/development.txt
# geopy
geopy==2.2.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
google-auth==2.27.0
# via shillelagh
# via
# -c requirements/development.txt
# shillelagh
greenlet==3.0.3
# via shillelagh
# via
# -c requirements/development.txt
# shillelagh
gunicorn==21.2.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
hashids==1.3.1
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
holidays==0.25
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
humanize==3.11.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
idna==3.2
# via
# -c requirements/development.txt
# email-validator
# requests
importlib-metadata==6.6.0
# via
# -c requirements/development.txt
# apache-superset
# flask
# shillelagh
importlib-resources==5.12.0
# via limits
# via
# -c requirements/development.txt
# limits
isodate==0.6.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
itsdangerous==2.1.2
# via
# -c requirements/development.txt
# flask
# flask-wtf
jinja2==3.1.3
# via
# -c requirements/development.txt
# flask
# flask-babel
jsonschema==4.17.3
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
kombu==5.3.4
# via celery
# via
# -c requirements/development.txt
# celery
korean-lunar-calendar==0.3.1
# via holidays
# via
# -c requirements/development.txt
# holidays
limits==3.4.0
# via flask-limiter
# via
# -c requirements/development.txt
# flask-limiter
llvmlite==0.40.1
# via numba
# via
# -c requirements/development.txt
# numba
mako==1.2.4
# via
# -c requirements/development.txt
# alembic
# apache-superset
markdown==3.3.4
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
markdown-it-py==2.2.0
# via rich
# via
# -c requirements/development.txt
# rich
markupsafe==2.1.1
# via
# -c requirements/development.txt
# jinja2
# mako
# werkzeug
# wtforms
marshmallow==3.19.0
# via
# -c requirements/development.txt
# flask-appbuilder
# marshmallow-sqlalchemy
marshmallow-sqlalchemy==0.23.1
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
mdurl==0.1.2
# via markdown-it-py
# via
# -c requirements/development.txt
# markdown-it-py
msgpack==1.0.2
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
nh3==0.2.11
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
numba==0.57.1
# via pandas
# via
# -c requirements/development.txt
# pandas
numexpr==2.9.0
# via
# -c requirements/development.txt
# -r requirements/base.in
# pandas
numpy==1.23.5
# via
# -c requirements/development.txt
# apache-superset
# bottleneck
# numba
@ -226,9 +365,12 @@ numpy==1.23.5
# pandas
# pyarrow
ordered-set==4.1.0
# via flask-limiter
# via
# -c requirements/development.txt
# flask-limiter
packaging==23.1
# via
# -c requirements/development.txt
# apache-superset
# apispec
# deprecation
@ -237,48 +379,80 @@ packaging==23.1
# marshmallow
# shillelagh
pandas[performance]==2.0.3
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
paramiko==3.4.0
# via
# -c requirements/development.txt
# apache-superset
# sshtunnel
parsedatetime==2.6
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
pgsanity==0.2.9
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
platformdirs==3.8.1
# via requests-cache
# via
# -c requirements/development.txt
# requests-cache
polyline==2.0.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
prison==0.2.1
# via flask-appbuilder
# via
# -c requirements/development.txt
# flask-appbuilder
prompt-toolkit==3.0.38
# via click-repl
# via
# -c requirements/development.txt
# click-repl
pyarrow==14.0.1
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
pyasn1==0.5.1
# via
# -c requirements/development.txt
# pyasn1-modules
# rsa
pyasn1-modules==0.3.0
# via google-auth
# via
# -c requirements/development.txt
# google-auth
pycparser==2.20
# via cffi
# via
# -c requirements/development.txt
# cffi
pygments==2.15.0
# via rich
# via
# -c requirements/development.txt
# rich
pyjwt==2.4.0
# via
# -c requirements/development.txt
# apache-superset
# flask-appbuilder
# flask-jwt-extended
pynacl==1.5.0
# via paramiko
# via
# -c requirements/development.txt
# paramiko
pyparsing==3.0.6
# via apache-superset
pyrsistent==0.19.3
# via jsonschema
# via
# -c requirements/development.txt
# apache-superset
pyrsistent==0.20.0
# via
# -c requirements/development.txt
# jsonschema
python-dateutil==2.8.2
# via
# -c requirements/development.txt
# alembic
# apache-superset
# celery
@ -288,42 +462,68 @@ python-dateutil==2.8.2
# pandas
# shillelagh
python-dotenv==0.19.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
python-editor==1.0.4
# via alembic
# via
# -c requirements/development.txt
# alembic
python-geohash==0.8.5
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
pytz==2021.3
# via
# -c requirements/development.txt
# babel
# flask-babel
# pandas
pyyaml==6.0.1
# via
# -c requirements/development.txt
# apache-superset
# apispec
redis==4.6.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
requests==2.31.0
# via
# -c requirements/development.txt
# requests-cache
# shillelagh
requests-cache==1.1.1
# via shillelagh
# via
# -c requirements/development.txt
# shillelagh
rich==13.3.4
# via flask-limiter
# via
# -c requirements/development.txt
# flask-limiter
rsa==4.9
# via google-auth
# via
# -c requirements/development.txt
# google-auth
selenium==3.141.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
shillelagh[gsheetsapi]==1.2.10
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
shortid==0.1.2
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
simplejson==3.17.3
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
six==1.16.0
# via
# -c requirements/development.txt
# click-repl
# isodate
# prison
@ -331,9 +531,12 @@ six==1.16.0
# url-normalize
# wtforms-json
slack-sdk==3.21.3
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
sqlalchemy==1.4.36
# via
# -c requirements/development.txt
# alembic
# apache-superset
# flask-appbuilder
@ -343,18 +546,28 @@ sqlalchemy==1.4.36
# sqlalchemy-utils
sqlalchemy-utils==0.38.3
# via
# -c requirements/development.txt
# apache-superset
# flask-appbuilder
sqlglot==20.8.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
sqlparse==0.4.4
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
sshtunnel==0.4.0
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
tabulate==0.8.9
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
typing-extensions==4.4.0
# via
# -c requirements/development.txt
# apache-superset
# cattrs
# flask-limiter
@ -363,44 +576,60 @@ typing-extensions==4.4.0
# shillelagh
tzdata==2023.3
# via
# -c requirements/development.txt
# celery
# pandas
url-normalize==1.4.3
# via requests-cache
# via
# -c requirements/development.txt
# requests-cache
urllib3==1.26.18
# via
# -c requirements/development.txt
# -r requirements/base.in
# requests
# requests-cache
# selenium
vine==5.1.0
# via
# -c requirements/development.txt
# amqp
# celery
# kombu
wcwidth==0.2.5
# via prompt-toolkit
# via
# -c requirements/development.txt
# prompt-toolkit
werkzeug==3.0.1
# via
# -c requirements/development.txt
# -r requirements/base.in
# flask
# flask-appbuilder
# flask-jwt-extended
# flask-login
wrapt==1.15.0
# via deprecated
# via
# -c requirements/development.txt
# deprecated
wtforms==2.3.3
# via
# -c requirements/development.txt
# apache-superset
# flask-appbuilder
# flask-wtf
# wtforms-json
wtforms-json==0.3.5
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
xlsxwriter==3.0.7
# via apache-superset
# via
# -c requirements/development.txt
# apache-superset
zipp==3.15.0
# via
# -c requirements/development.txt
# importlib-metadata
# importlib-resources

View File

@ -17,10 +17,26 @@
# under the License.
#
-r base.in
-e .[cors,druid,hive,mysql,postgres,thumbnails]
-e .[bigquery,cors,druid,gevent,gsheets,hive,mysql,playwright,postgres,presto,prophet,trino,thumbnails]
docker
flask-testing
freezegun
greenlet>=2.0.2
grpcio>=1.55.3
ipython
openapi-spec-validator
parameterized
pip-compile-multi
pre-commit
progress>=1.5,<2
pyfakefs
pyinstrument>=4.0.2,<5
pylint
pytest
pytest-cov
pytest-mock
python-ldap>=3.4.3
sqloxide
statsd
tox

View File

@ -1,4 +1,4 @@
# SHA1:5d8f94148b758249eecc1e6a9b2f3ffde15815ad
# SHA1:3b6a7d105f9d14b449d4232aa368bd6a40d4c7ef
#
# This file is autogenerated by pip-compile-multi
# To update, run:
@ -24,24 +24,100 @@ botocore==1.29.130
# via
# boto3
# s3transfer
build==0.10.0
# via pip-tools
cached-property==1.5.2
# via tableschema
cfgv==3.3.1
# via pre-commit
chardet==5.1.0
# via tabulator
# via
# tabulator
# tox
cmdstanpy==1.1.0
# via prophet
contourpy==1.0.7
# via matplotlib
coverage[toml]==7.2.5
# via pytest-cov
cycler==0.11.0
# via matplotlib
db-dtypes==1.1.1
# via pandas-gbq
decorator==5.1.1
# via ipython
dill==0.3.6
# via pylint
distlib==0.3.6
# via virtualenv
docker==6.1.1
# via -r requirements/development.in
et-xmlfile==1.1.0
# via openpyxl
executing==1.2.0
# via stack-data
filelock==3.12.2
# via
# tox
# virtualenv
flask-cors==3.0.10
# via apache-superset
flask-testing==0.8.1
# via -r requirements/development.in
fonttools==4.43.0
# via matplotlib
freezegun==1.2.2
# via -r requirements/development.in
future==0.18.3
# via pyhive
# via
# pyhive
# sqlalchemy-bigquery
gevent==23.9.1
# via apache-superset
google-api-core[grpc]==2.11.0
# via
# google-cloud-bigquery
# google-cloud-bigquery-storage
# google-cloud-core
# pandas-gbq
# sqlalchemy-bigquery
google-auth-oauthlib==1.0.0
# via
# pandas-gbq
# pydata-google-auth
google-cloud-bigquery==3.10.0
# via
# apache-superset
# pandas-gbq
# sqlalchemy-bigquery
google-cloud-bigquery-storage==2.19.1
# via
# pandas-gbq
# sqlalchemy-bigquery
google-cloud-core==2.3.2
# via google-cloud-bigquery
google-crc32c==1.5.0
# via google-resumable-media
google-resumable-media==2.5.0
# via google-cloud-bigquery
googleapis-common-protos==1.59.0
# via
# google-api-core
# grpcio-status
grpcio==1.60.1
# via
# -r requirements/development.in
# google-api-core
# google-cloud-bigquery
# grpcio-status
grpcio-status==1.60.1
# via google-api-core
identify==2.5.24
# via pre-commit
ijson==3.2.0.post0
# via tabulator
iniconfig==2.0.0
# via pytest
ipython==8.12.2
# via -r requirements/development.in
isort==5.12.0
@ -54,28 +130,78 @@ jmespath==1.0.1
# botocore
jsonlines==3.1.0
# via tabulator
jsonschema-spec==0.1.4
# via openapi-spec-validator
kiwisolver==1.4.4
# via matplotlib
lazy-object-proxy==1.9.0
# via astroid
# via
# astroid
# openapi-spec-validator
linear-tsv==1.1.0
# via tabulator
matplotlib==3.7.1
# via prophet
matplotlib-inline==0.1.6
# via ipython
mccabe==0.7.0
# via pylint
mysqlclient==2.1.0
# via apache-superset
nodeenv==1.7.0
# via pre-commit
oauthlib==3.2.2
# via requests-oauthlib
openapi-schema-validator==0.4.4
# via openapi-spec-validator
openapi-spec-validator==0.5.6
# via -r requirements/development.in
openpyxl==3.1.2
# via tabulator
pandas-gbq==0.19.1
# via apache-superset
parameterized==0.9.0
# via -r requirements/development.in
parso==0.8.3
# via jedi
pathable==0.4.3
# via jsonschema-spec
pexpect==4.8.0
# via ipython
pickleshare==0.7.5
# via ipython
pillow==10.2.0
# via
# apache-superset
# matplotlib
pip-compile-multi==2.6.3
# via -r requirements/development.in
pip-tools==7.3.0
# via pip-compile-multi
playwright==1.41.2
# via apache-superset
pluggy==1.2.0
# via
# pytest
# tox
pre-commit==3.3.3
# via -r requirements/development.in
progress==1.6
# via -r requirements/development.in
prophet==1.1.5
# via apache-superset
proto-plus==1.22.2
# via
# google-cloud-bigquery
# google-cloud-bigquery-storage
protobuf==4.23.0
# via
# google-api-core
# google-cloud-bigquery
# google-cloud-bigquery-storage
# googleapis-common-protos
# grpcio-status
# proto-plus
psycopg2-binary==2.9.6
# via apache-superset
ptyprocess==0.7.0
@ -86,24 +212,53 @@ pure-sasl==0.6.2
# via
# pyhive
# thrift-sasl
pydata-google-auth==1.7.0
# via pandas-gbq
pydruid==0.6.5
# via apache-superset
pyee==11.0.1
# via playwright
pyfakefs==5.2.2
# via -r requirements/development.in
pyhive[hive_pure_sasl]==0.7.0
# via apache-superset
pyinstrument==4.4.0
# via -r requirements/development.in
pylint==2.17.7
# via -r requirements/development.in
pyproject-api==1.5.2
# via tox
pyproject-hooks==1.0.0
# via build
pytest==7.3.1
# via
# -r requirements/development.in
# pytest-cov
# pytest-mock
pytest-cov==4.0.0
# via -r requirements/development.in
pytest-mock==3.10.0
# via -r requirements/development.in
python-ldap==3.4.3
# via -r requirements/development.in
pytz-deprecation-shim==0.1.0.post0
# via tzlocal
requests-oauthlib==1.3.1
# via google-auth-oauthlib
rfc3339-validator==0.1.4
# via openapi-schema-validator
rfc3986==2.0.0
# via tableschema
s3transfer==0.6.1
# via boto3
sqlalchemy-bigquery==1.6.1
# via apache-superset
sqloxide==0.1.33
# via -r requirements/development.in
stack-data==0.6.2
# via ipython
statsd==4.0.1
# via -r requirements/development.in
tableschema==1.20.2
# via apache-superset
tabulator==1.53.5
@ -116,19 +271,52 @@ thrift==0.16.0
thrift-sasl==0.4.3
# via pyhive
tomli==2.0.1
# via pylint
# via
# build
# coverage
# pip-tools
# pylint
# pyproject-api
# pyproject-hooks
# pytest
# tox
tomlkit==0.11.8
# via pylint
toposort==1.10
# via pip-compile-multi
tox==4.6.4
# via -r requirements/development.in
tqdm==4.65.0
# via
# cmdstanpy
# prophet
traitlets==5.9.0
# via
# ipython
# matplotlib-inline
trino==0.328.0
# via apache-superset
tzlocal==4.3
# via trino
unicodecsv==0.14.1
# via
# tableschema
# tabulator
virtualenv==20.23.1
# via
# pre-commit
# tox
websocket-client==1.5.1
# via docker
wheel==0.40.0
# via pip-tools
xlrd==2.0.1
# via tabulator
zope-event==4.5.0
# via gevent
zope-interface==5.4.0
# via gevent
# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools

View File

@ -1,19 +0,0 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
-r base.in
-e .[postgres,gevent]
greenlet>=2.0.2

View File

@ -1,23 +0,0 @@
# SHA1:f00a57c70a52607d638c19f64f426f887382927e
#
# This file is autogenerated by pip-compile-multi
# To update, run:
#
# pip-compile-multi
#
-r base.txt
-e file:.
# via
# -r requirements/base.in
# -r requirements/docker.in
gevent==23.9.1
# via apache-superset
psycopg2-binary==2.9.6
# via apache-superset
zope-event==4.5.0
# via gevent
zope-interface==5.4.0
# via gevent
# The following packages are considered to be unsafe in a requirements file:
# setuptools

View File

@ -1,19 +0,0 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
pip-compile-multi
pre-commit
tox

View File

@ -1,74 +0,0 @@
# SHA1:39179f2c476f94362aa0705be059a488d7e38b6d
#
# This file is autogenerated by pip-compile-multi
# To update, run:
#
# pip-compile-multi
#
build==0.10.0
# via pip-tools
cachetools==5.3.2
# via tox
cfgv==3.3.1
# via pre-commit
chardet==5.1.0
# via tox
click==8.1.3
# via
# pip-compile-multi
# pip-tools
colorama==0.4.6
# via tox
distlib==0.3.6
# via virtualenv
filelock==3.12.2
# via
# tox
# virtualenv
identify==2.5.24
# via pre-commit
nodeenv==1.7.0
# via pre-commit
packaging==23.1
# via
# build
# pyproject-api
# tox
pip-compile-multi==2.6.3
# via -r requirements/integration.in
pip-tools==7.3.0
# via pip-compile-multi
platformdirs==3.8.1
# via
# tox
# virtualenv
pluggy==1.2.0
# via tox
pre-commit==3.3.3
# via -r requirements/integration.in
pyproject-api==1.5.2
# via tox
pyproject-hooks==1.0.0
# via build
pyyaml==6.0.1
# via pre-commit
tomli==2.0.1
# via
# build
# pip-tools
# pyproject-api
# tox
toposort==1.10
# via pip-compile-multi
tox==4.6.4
# via -r requirements/integration.in
virtualenv==20.23.1
# via
# pre-commit
# tox
wheel==0.40.0
# via pip-tools
# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools

View File

@ -1,17 +0,0 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
-r development.in

View File

@ -1,15 +0,0 @@
# SHA1:a71c19ba0170092851941268a0a3dc233feba06d
#
# This file is autogenerated by pip-compile-multi
# To update, run:
#
# pip-compile-multi
#
-r development.txt
-e file:.
# via
# -r requirements/base.in
# -r requirements/development.in
# The following packages are considered to be unsafe in a requirements file:
# setuptools

View File

@ -1,31 +0,0 @@
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
-r development.in
-r integration.in
-e file:.[bigquery,hive,presto,prophet,trino,gsheets,playwright]
docker
flask-testing
freezegun
grpcio>=1.55.3
openapi-spec-validator
parameterized
pyfakefs
pylint
pytest
pytest-cov
pytest-mock
statsd

View File

@ -1,147 +0,0 @@
# SHA1:a37a1037f359c1101162ef43288178fbf00c487d
#
# This file is autogenerated by pip-compile-multi
# To update, run:
#
# pip-compile-multi
#
-r development.txt
-r integration.txt
-e file:.
# via
# -r requirements/base.in
# -r requirements/development.in
# -r requirements/testing.in
cmdstanpy==1.1.0
# via prophet
contourpy==1.0.7
# via matplotlib
coverage[toml]==7.2.5
# via pytest-cov
cycler==0.11.0
# via matplotlib
db-dtypes==1.1.1
# via pandas-gbq
docker==6.1.1
# via -r requirements/testing.in
flask-testing==0.8.1
# via -r requirements/testing.in
fonttools==4.43.0
# via matplotlib
freezegun==1.2.2
# via -r requirements/testing.in
google-api-core[grpc]==2.11.0
# via
# google-cloud-bigquery
# google-cloud-bigquery-storage
# google-cloud-core
# pandas-gbq
# sqlalchemy-bigquery
google-auth-oauthlib==1.0.0
# via
# pandas-gbq
# pydata-google-auth
google-cloud-bigquery==3.10.0
# via
# apache-superset
# pandas-gbq
# sqlalchemy-bigquery
google-cloud-bigquery-storage==2.19.1
# via
# pandas-gbq
# sqlalchemy-bigquery
google-cloud-core==2.3.2
# via google-cloud-bigquery
google-crc32c==1.5.0
# via google-resumable-media
google-resumable-media==2.5.0
# via google-cloud-bigquery
googleapis-common-protos==1.59.0
# via
# google-api-core
# grpcio-status
grpcio==1.60.1
# via
# -r requirements/testing.in
# google-api-core
# google-cloud-bigquery
# grpcio-status
grpcio-status==1.60.1
# via google-api-core
iniconfig==2.0.0
# via pytest
jsonschema-spec==0.1.4
# via openapi-spec-validator
kiwisolver==1.4.4
# via matplotlib
matplotlib==3.7.1
# via prophet
oauthlib==3.2.2
# via requests-oauthlib
openapi-schema-validator==0.4.4
# via openapi-spec-validator
openapi-spec-validator==0.5.6
# via -r requirements/testing.in
pandas-gbq==0.19.1
# via apache-superset
parameterized==0.9.0
# via -r requirements/testing.in
pathable==0.4.3
# via jsonschema-spec
playwright==1.41.2
# via apache-superset
prophet==1.1.5
# via apache-superset
proto-plus==1.22.2
# via
# google-cloud-bigquery
# google-cloud-bigquery-storage
protobuf==4.23.0
# via
# google-api-core
# google-cloud-bigquery
# google-cloud-bigquery-storage
# googleapis-common-protos
# grpcio-status
# proto-plus
pydata-google-auth==1.7.0
# via pandas-gbq
pyee==11.0.1
# via playwright
pyfakefs==5.2.2
# via -r requirements/testing.in
pyhive[presto]==0.7.0
# via apache-superset
pytest==7.3.1
# via
# -r requirements/testing.in
# pytest-cov
# pytest-mock
pytest-cov==4.0.0
# via -r requirements/testing.in
pytest-mock==3.10.0
# via -r requirements/testing.in
pytz-deprecation-shim==0.1.0.post0
# via tzlocal
requests-oauthlib==1.3.1
# via google-auth-oauthlib
rfc3339-validator==0.1.4
# via openapi-schema-validator
sqlalchemy-bigquery==1.6.1
# via apache-superset
statsd==4.0.1
# via -r requirements/testing.in
tqdm==4.65.0
# via
# cmdstanpy
# prophet
trino==0.328.0
# via apache-superset
tzlocal==4.3
# via trino
websocket-client==1.5.1
# via docker
# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools

View File

@ -27,7 +27,7 @@ commands =
# no args or tests/* can be passed as an argument to run all tests
pytest -s {posargs}
deps =
-rrequirements/testing.txt
-rrequirements/development.txt
setenv =
PYTHONPATH = {toxinidir}
SUPERSET_TESTENV = true
@ -147,20 +147,20 @@ deps =
commands =
pre-commit run --all-files
deps =
-rrequirements/integration.txt
-rrequirements/development.txt
skip_install = true
[testenv:pylint]
commands =
pylint superset
deps =
-rrequirements/testing.txt
-rrequirements/development.txt
[testenv:thumbnails]
setenv =
SUPERSET_CONFIG = tests.integration_tests.superset_test_config_thumbnails
deps =
-rrequirements/testing.txt
-rrequirements/development.txt
[tox]
envlist =