Skip to main content

Tower CLI and runtime environment for Tower.

Project description

Tower CLI

The Tower CLI is one of the main ways to interact with the Tower environment. You can do basically everything you need inside the Tower CLI, including run your code locally or remotely in the Tower cloud.

Installing the Tower CLI

The main way to install the CLI is using the pip package manager.

$ pip install -U tower

You can also download the CLI directly from one of our releases.

Using the Tower CLI

There are two big components in the Tower CLI reposiory: The CLI itself and the runtime environment for the Tower cloud. We host the runtime in this repository and pull it in to our internal code because we want to ensure that the environments behave exactly the same locally and in our cloud!

Using the CLI

It's pretty straight forward! But here's what it looks like right now.

$ tower
Tower is a compute platform for modern data projects

Usage: tower [OPTIONS] <COMMAND>

Commands:
  login    Create a session with Tower
  apps     Interact with the apps that you own
  secrets  Interact with the secrets in your Tower account
  deploy   Deploy your latest code to Tower
  run      Run your code in Tower or locally
  version  Print the current version of Tower
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help                   Print help

Optional Features

Tower supports several optional features that can be installed as needed:

AI/LLM Support

pip install "tower[ai]"

Provides integration with language models through:

  • tower.llms: Access to language model functionality

Apache Iceberg Support

pip install "tower[iceberg]"

Provides Apache Iceberg table support:

  • tower.create_table: Create Iceberg tables
  • tower.load_table: Load data from Iceberg tables

Install All Optional Features

pip install "tower[all]"

Check Available Features

You can check which features are available in your installation:

import tower
import pprint

# Print information about all features
pprint.pprint(tower.get_available_features())

# Check if a specific feature is enabled
print(tower.is_feature_enabled("ai"))

About the runtime environment

The tower-runtime crate has the Rust library that makes up the runtime environment itself. All the interfaces are defined in the main crate, and the local package contains the invokation logic for invoking tower packages locally.

To learn more about tower packages, see the tower-package crate.

Contributing

We welcome contributions to the Tower CLI and runtime environment! Please see the CONTRIBUTING.md file for more information.

Code of Conduct

All contributions must abide by our code of conduct. Please see CODE_OF_CONDUCT.md for more information.

Development

Here are a few handy tips and common workflows when developing the Tower CLI.

Python SDK development

We use uv for all development. You can spawn a REPL in context using uv very easily. Then you can import tower and you're off to the races!

uv run python

To run tests:

uv sync --locked --all-extras --dev
uv run pytest tests

If you need to get the latest OpenAPI SDK, you can run ./scripts/generate-python-api-client.sh.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tower-0.3.18.tar.gz (163.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tower-0.3.18-py3-none-win_arm64.whl (4.0 MB view details)

Uploaded Python 3Windows ARM64

tower-0.3.18-py3-none-win_amd64.whl (4.1 MB view details)

Uploaded Python 3Windows x86-64

tower-0.3.18-py3-none-musllinux_1_2_x86_64.whl (7.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

tower-0.3.18-py3-none-musllinux_1_2_i686.whl (7.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

tower-0.3.18-py3-none-musllinux_1_2_armv7l.whl (6.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

tower-0.3.18-py3-none-musllinux_1_2_aarch64.whl (7.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

tower-0.3.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

tower-0.3.18-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (6.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

tower-0.3.18-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

tower-0.3.18-py3-none-macosx_11_0_arm64.whl (4.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

tower-0.3.18-py3-none-macosx_10_12_x86_64.whl (4.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

tower-0.3.18-py3-none-linux_armv6l.whl (6.7 MB view details)

Uploaded Python 3

File details

Details for the file tower-0.3.18.tar.gz.

File metadata

  • Download URL: tower-0.3.18.tar.gz
  • Upload date:
  • Size: 163.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.12

File hashes

Hashes for tower-0.3.18.tar.gz
Algorithm Hash digest
SHA256 90e06cf9d27323ccd4c005010b68582ffc752d14dbe357a304643516f5a11ef2
MD5 c3e497adcd7809a776062f88894a97a2
BLAKE2b-256 f46b0bb487e2d31ec0fe9dd9b60a57be8135da5eb41124809f8241822fd5c94d

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-win_arm64.whl.

File metadata

  • Download URL: tower-0.3.18-py3-none-win_arm64.whl
  • Upload date:
  • Size: 4.0 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.12

File hashes

Hashes for tower-0.3.18-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 9725e1d9326c94a72a272026d6b0c710ac6cc8839e57741f800b26a69646f884
MD5 683642d4b685fdde8eabef3c72b83acc
BLAKE2b-256 f92132bee3277541ade090a0914668414ed13df658592e8ea13b46c0f498cd62

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-win_amd64.whl.

File metadata

  • Download URL: tower-0.3.18-py3-none-win_amd64.whl
  • Upload date:
  • Size: 4.1 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.12

File hashes

Hashes for tower-0.3.18-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d971b7048bfe9ba742e280007cb4101740f4b01ca6033975c36c9d852443822d
MD5 91ebdb62d1e39f39cd3e6fcdc666f015
BLAKE2b-256 287e0ff5b3e64bd71b928d7b367c9cb28cd7c9dd8f45acb481b71e5897e2d152

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c3fb3d88bbb01b93fb21b19b92f363b6ba65a0ddf75ce830af08365aef427983
MD5 8f59f2ed0fc4dda60bd9875c58d50780
BLAKE2b-256 5ebe809542e4509cf7ec672a67612bfad615dacfb55287eb3201df44788b1912

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 be15fd78cb2e38f40618ef1de1e9a962d925d59fd09a7221d70e5b4c770dd687
MD5 ca4eec7ecf3d0058dbc4eece84abcb7f
BLAKE2b-256 d7f1c2188e334ea9eb57f22f80fce2ccc568af8eee1b9ac869fc65675a673382

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 73d6c7bd82fa316c17d768e9eabaaa0535f05bb2ef777ac19d5ab744217df0e3
MD5 40cd0907f608ddfc939f6968ebbcc6a5
BLAKE2b-256 3f04c71781fd824017151b0ab07f99e2913f5bb75cfe6c28c5b75a32422ca839

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a693f2bcfbf8f0a105acfaa9adec0fb3885c86b13c533e312a9ed6c09413a066
MD5 ead85bc376644d1300b371c73141f55c
BLAKE2b-256 9ba16b5602c596e8a0fc7a2ca9a09a26ead889d6da055dd74e7a202de101baf9

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 006985b06c048b2674dfdf97ed6bd7e7d4d44384ccb174118e2bdf1ccee32a57
MD5 9c0a4e77310e39f743329f914059a675
BLAKE2b-256 f376b2c6d53cd9455a8b210c0377e169dc35609eb0da2db49f501b048d5c9682

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3820f0b740b76d71f03fee41f8b410c3be634fb6774613b7cfe7318197627e28
MD5 35a45984a8cbe4ffefa6f0b5caebe8f1
BLAKE2b-256 c1901ee162b162d89f26e6fc87a408da655f967483571976c506a8b3dcba4781

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 00351008b621bd49b7ab30acea57371b5937c32724056a5dadfc4f2edf913647
MD5 abe809d671b7da58a93aeb39be894947
BLAKE2b-256 a6a6069c33346c89fdc217cffc7a93f592dddbbe6080dcbe55b23529ff7f1004

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce9be1ffa53ce63c03aa7f1fa3471a4768b6c5b71613eadb6b54cf7483195ae8
MD5 3ab517bdf8bab2c544a54533c635fa70
BLAKE2b-256 6c4026a42746f9a1695997df1871ecd2fdd82bbc631f1c0c711790132da11f9f

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fdb5584c31f555ef142f5bf94357d8af3c90231c555c28e72593ae967faed1a1
MD5 fcd42cbfafe1ceaee329120af8fe48e8
BLAKE2b-256 39436a90730ecb3b86097e9799c9b97143a3d2fadc3218e66f95b936b2330222

See more details on using hashes here.

File details

Details for the file tower-0.3.18-py3-none-linux_armv6l.whl.

File metadata

File hashes

Hashes for tower-0.3.18-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 b58d5200b1b69aaac35ef289a41c1c57a21f55d62c26db40a82fc007192f4d63
MD5 f50a3d3617d5b08caeb13d0670bc3ac3
BLAKE2b-256 f008f12d00dd539dfca164ab6c6f806df06c7a8e9dcd7ffe65aad3d566adbe08

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page