Skip to main content

Script-Languages-Container-Tool

Checks main Downloads PyPI Version PyPI - Python Version Formatter - Black Formatter - Isort License Last Commit

Overview

The Script-Languages-Container-Tool (exaslct) is the build tool for the script language container. You can build, export and upload script-language container from so-called flavors which are description how to build the script language container. You can find pre-defined flavors in the script-languages-release repository. There we also described how you could customize these flavors to your needs.

In a Nutshell

Prerequisites

Note: Since version 1.0.0 the “starter scripts” shipped with previous version, which pulled the exaslct docker container runtime, were removed. If you can’t use Python3, you still can use our AI-lab which provides VM images, AMI images and a Docker images, all capable of building script-language-container.

For running

In order to use this tool, your system needs to fulfill the following prerequisites:

  • Software

  • System Setup

    • We recommend at least 50 GB free disk space on the partition where Docker stores its images, on linux Docker typically stores the images at /var/lib/docker.

    • For the partition where the output directory (default: ./.build_output) is located we recommend additionally at least 10 GB free disk space.

Further, prerequisites might be necessary for specific tasks. These are listed under the corresponding section.

Installation

In general, it’s good practice to install the package in a virtual environment, using venv or Poetry.

Pip via PyPi

python3 -m pip install exasol-script-languages-container-tool

Pipx via Pypi

If you plan to use exasol-script-languages-container-tool on the command line only via the exaslct script, we suggest the installation via pipx:

pipx install exasol-script-languages-container-tool

Usage

For simplicity the following examples use the script version (exaslct), which will be installed together with the Python package. The script is just an alias for python3 -m exasol.slc.tool.main.

How to build an existing flavor?

Create the language container and export it to the local file system

exaslct export --flavor-path=flavors/<flavor-name> --export-path <export-path>

Add --use-symlink-for-export-path to create the exported tar file as an absolute symlink to the cached tarball.

or deploy it directly to the BucketFS (both http and https are supported)

exaslct deploy --flavor-path=flavors/<flavor-name> --bucketfs-host <hostname-or-ip> --bucketfs-port <port> \
                   --bucketfs-user w --bucketfs-password <password>  --bucketfs-name <bucketfs-name> \
                   --bucket <bucket-name> --path-in-bucket <path/in/bucket> --bucketfs-use-https 1

Once it is successfully deployed, it will print the ALTER SESSION statement that can be used to activate the script language container in the database.

How to activate a script language container in the database

If you uploaded a container manually, you can generate the language activation statement with

exaslct generate-language-activation --flavor-path=flavors/<flavor-name> --bucketfs-name <bucketfs-name> \
                                         --bucket-name <bucket-name> --path-in-bucket <path/in/bucket> --container-name <container-name>

where <container-name> is the name of the uploaded archive without its file extension. To activate the language, execute the generated statement in your database session to activate the container for the current session or system wide.

This command will print a SQL statement to activate the language similar to the following one:

ALTER SESSION SET SCRIPT_LANGUAGES='<LANGUAGE_ALIAS>=localzmq+protobuf:///<bucketfs-name>/<bucket-name>/<path-in-bucket>/<container-name>?lang=<language>#buckets/<bucketfs-name>/<bucket-name>/<path-in-bucket>/<container-name>/exaudf/exaudfclient[_py3]';

Please, refer to the User Guide. for more detailed information, how to use exalsct.

Features

  • Build a script language container as docker images

  • Export a script language container as an archive which can be used for extending Exasol UDFs

  • Upload a script language container as an archive to the Exasol DB’s BucketFS

  • Generating the activation command for a script language container

  • Can use Docker registries, such as Docker Hub, as a cache to avoid rebuilding image without changes

  • Can push Docker images to Docker registries

  • Run tests for you container against an Exasol DB (docker-db or external db)

📚 Documentation

For further details, check out latest documentation.

Metadata

Release files for exasol-script-languages-container-tool 4.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exasol-script-languages-container-tool 4.4.0
File Size Uploaded
exasol_script_languages_container_tool-4.4.0.tar.gz 58.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for exasol-script-languages-container-tool 4.4.0
File Interpreter ABI Platform
exasol_script_languages_container_tool-4.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 176.4 kB

Release files / exasol_script_languages_container_tool-4.4.0.tar.gz

Download URL exasol_script_languages_container_tool-4.4.0.tar.gz
Size 58.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ba4389ce8aafdca552bf599f2978d1034aee9699d46fb78f92cc1f4087cd754f
BLAKE2b-256 checksum
How to use checksums
07cf8d5ab29745a2b3915156e83fb2f7996f6dd6e95912ee96582cae07256f69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.0 CPython/3.10.21 Linux/6.17.0-1022-azure

Release files / exasol_script_languages_container_tool-4.4.0-py3-none-any.whl

Download URL exasol_script_languages_container_tool-4.4.0-py3-none-any.whl
Size 117.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
035140de5cdeb019f65c7d18a1aeac78fba9c4b9d1f2afa29ac64fe4df1893ee
BLAKE2b-256 checksum
How to use checksums
ed94c9de9bb7e9e3948f2f34fe6f2bfac013dbbcc541d6b8ba34317c0894dd1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.0 CPython/3.10.21 Linux/6.17.0-1022-azure

Release history Release notifications | RSS feed

This release

4.4.0 This release

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.0

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.21.0

2 release files

0.19.0

2 release files

0.18.3

2 release files

0.18.2

2 release files

0.18.1

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page