Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a3479ba
253: Made dependencies optional in file `pyproject.toml`
ckunki Sep 8, 2025
a3573c4
Removed section dependendencies
ckunki Sep 8, 2025
20cf94e
Updated optional dependencies
ckunki Sep 8, 2025
a79ed7a
Install all optional dependencies also for lint
ckunki Sep 8, 2025
a910215
Removed commented-out lines
ckunki Sep 8, 2025
4969974
made some dependencies mandatory
ckunki Sep 9, 2025
ab82233
Used poetry 2.0 syntax for mandatory dependencies
ckunki Sep 9, 2025
8d3b092
poetry lock
ckunki Sep 9, 2025
2abb51e
Fixed review findings
ckunki Sep 9, 2025
f33701d
Update doc/user_guide/user-guide.md
ckunki Sep 10, 2025
fc71b75
Added a list of all NC's dependency categories to the User Guide
ckunki Sep 10, 2025
c7e324b
Added brief explanations and links to pypi for all extra categories
ckunki Sep 10, 2025
ea9c670
Added link to SLC documentation
ckunki Sep 10, 2025
a054ecd
Fixed table formatting in User Guide
ckunki Sep 10, 2025
0c470c0
Renamed extra "itde" to "docker-db"
ckunki Sep 10, 2025
2c9c196
updated sample usage of extra "itde"
ckunki Sep 10, 2025
0d0c9f0
Updated description of category docker-db in optional dependencies
ckunki Sep 11, 2025
c51cb17
Removed old table with column pypi
ckunki Sep 11, 2025
a6cd96d
relocked dependencies
ckunki Sep 11, 2025
14d8923
Added optional dependency for integration tests with external ITDE
ckunki Sep 11, 2025
15affba
Run ordinary itests without confirmation
ckunki Sep 11, 2025
9df20ba
Added optional dependency for integration tests with external ITDE (2)
ckunki Sep 11, 2025
01c5e25
Added optional dependency for itests with external ITDE (3)
ckunki Sep 11, 2025
fe9f021
Added optional dependency for itests with external ITDE (3)
ckunki Sep 11, 2025
a448166
Added optional dependency for itests with external ITDE (3)
ckunki Sep 11, 2025
9533edd
Added optional dependency for itests with external ITDE (3)
ckunki Sep 11, 2025
d3cdead
Re-enabled precondition slow test approval for ordinary-itests
ckunki Sep 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

- name: Install All Optional Dependencies (aka. "extras")
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PTB currently only offers action python-environment to be called with a list of space-separated extras.
Proposal: Add support for requesting to install "all extras".

run: poetry install --all-extras

- name: Run lint
run: poetry run -- nox -s lint:code

Expand Down Expand Up @@ -196,6 +199,9 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

- name: Install All Optional Dependencies (aka. "extras")
run: poetry install --all-extras

- name: Run Tests and Collect Coverage
run: |
poetry run -- nox -s test:unit -- --coverage \
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests-gpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ jobs:
with:
poetry-version: 2.1.2

- name: Install All Optional Dependencies (aka. "extras")
run: poetry install --all-extras

- name: Allow unprivileged user namespaces
run: |
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests-large-runner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ jobs:
with:
poetry-version: 2.1.2

- name: Install All Optional Dependencies (aka. "extras")
run: poetry install --all-extras

- name: Allow unprivileged user namespaces
run: |
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests-ordinary-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ jobs:
- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v1

- name: Install All Optional Dependencies (aka. "extras")
run: poetry install --all-extras

- name: Allow unprivileged user namespaces
run: |
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/tests-saas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ jobs:
- name: Setup Python & Poetry Environment
uses: exasol/python-toolbox/.github/actions/python-environment@v1

- name: Install All Optional Dependencies (aka. "extras")
run: poetry install --all-extras

- name: Allow unprivileged user namespaces
run: |
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Expand Down
8 changes: 8 additions & 0 deletions doc/changes/unreleased.md
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
# Unreleased

## Summary

This release marks most of the NC's dependencies in file `pyproject.toml` as _optional_. Please see updated installation instructions in the NC User Guide.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is also not completely true anymore

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please explain!
"most of the NC's dependencies" is still true in my understanding.


## Refactorings

* #253: Made dependencies optional in file `pyproject.toml`
30 changes: 30 additions & 0 deletions doc/user_guide/user-guide.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# Notebook Connector User Guide

## Installing the Notebook Connector (NC)

Most of NC's dependencies are declared as "optional" in file `pyproject.toml`.

Here is a comprehensive list of all NC's optional dependency categories (aka. "extras"):

| Package | Description |
|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `sqlalchemy` | [SQLAlchemy dialect](https://pypi.org/project/sqlalchemy_exasol/) for Exasol databases |
| `pyexasol` | Python driver for [connecting to Exasol databases](https://pypi.org/project/pyexasol/) |
| `bucketfs` | [Python API](https://pypi.org/project/exasol-bucketfs/) to interact with Exasol [Bucketfs-Service(s)](https://docs.exasol.com/db/latest/database_concepts/bucketfs/bucketfs.htm) |
| `docker-db` | For starting a [Docker instance of the Exasol database](https://pypi.org/project/exasol-integration-test-docker-environment/) |
| `slc` | For [building](https://pypi.org/project/exasol-script-languages-container-tool/) custom [Script Language Containers](https://github.com/exasol/script-languages-release) for [Exasol UDFs](https://docs.exasol.com/db/7.1/database_concepts/udf_scripts.htm) |
| `ibis` | Portable Python dataframe library [ibis-framework](https://pypi.org/project/ibis-framework/) |
| `transformers` | An [Exasol extension](https://pypi.org/project/exasol-transformers-extension/) for using state-of-the-art pretrained machine learning models via the [Hugging Face Transformers API](https://github.com/huggingface/transformers) |
| `sagemaker` | An [Exasol extension](https://pypi.org/project/exasol-sagemaker-extension/) to interact with [AWS SageMaker](https://pypi.org/project/sagemaker/) from inside the database |

You can install selected dependencies using the following syntax
```shell
pip install "notebook-connector [slc, docker-db]"
```

You can also retrieve a list of all NC's dependency categories with the following command line, see [stackoverflow/64685527](https://stackoverflow.com/questions/64685527/pip-install-with-all-extras):

```shell
pip install --dry-run --ignore-installed --quiet --report=- \
exasol-notebook-connector \
| jq --raw-output '.install[0].metadata.provides_extra|join(",")'
```

## Managing Script Language Containers (SLCs)

The Notebook Connector (NC) supports building different flavors of [Exasol Script Language Containers](https://github.com/exasol/script-languages-release) (SLCs) using the [script-languages-container-tool](https://github.com/exasol/script-languages-container-tool).
Expand Down
Loading