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

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.13.tar.gz (150.4 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.13-py3-none-win_arm64.whl (3.2 MB view details)

Uploaded Python 3Windows ARM64

tower-0.3.13-py3-none-win_amd64.whl (3.4 MB view details)

Uploaded Python 3Windows x86-64

tower-0.3.13-py3-none-musllinux_1_2_x86_64.whl (6.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

tower-0.3.13-py3-none-musllinux_1_2_i686.whl (6.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

tower-0.3.13-py3-none-musllinux_1_2_armv7l.whl (5.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

tower-0.3.13-py3-none-musllinux_1_2_aarch64.whl (6.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

tower-0.3.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

tower-0.3.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (5.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

tower-0.3.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

tower-0.3.13-py3-none-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

tower-0.3.13-py3-none-macosx_10_12_x86_64.whl (3.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

tower-0.3.13-py3-none-linux_armv6l.whl (5.8 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.13.tar.gz
Algorithm Hash digest
SHA256 df7dd8160d3c94cbed830e363ed794cd78498dcf6091a0ac40445a849b1b178a
MD5 349812344825f11836030d9bc4ec2de0
BLAKE2b-256 f28bc64294af751d8e667974c8d1ac21c5b66b19acf43c8d59fc8542f9198c39

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.13-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 1fd360827a2a2690a0714921bee2d12f790740aefe7eacfb4a4e63448a0f4ef1
MD5 2c6ff09b6dc1443dd6cd23ae17ed5658
BLAKE2b-256 b4c48028e8610f1b873d7fd525f4afbd80571ccbdece4b3d45140767c7a9a7a2

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.13-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a9dbf8ed7d3b44ace08a301783291da5d087d595db50b8d58878bfd1363a99e0
MD5 a05aad6eeedf622b180f5dcfbf974497
BLAKE2b-256 41bad5dcfb0ef1d3cd0a2ed7ac0fb2282c3165183171147b4e97a0f78b0f84ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c75e429e1434043b1cb85e7d9bfe10b8f722a5799c1371a05520b552009603a0
MD5 e26e593897ca9993d75bfdbb8d6fbdd3
BLAKE2b-256 f1a0da6411fb957db80befd34ce98a9942ce94cfddbedf74019894e972cb86ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 68fea34be40b4b792fd900913f96d826f48807cce26d2e2559fb9f0aa7ae6e1d
MD5 0b4ca8f860d0ee0331156f6d70a7df10
BLAKE2b-256 cb6bafe179fe148b8590190e645979aa3e31e54fc8cda90850b1832ffef27f5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 222435187f0f25e49726b025f6d18bd791382739384b4a872249cbebc4a1b069
MD5 ce8fe86adbc621a0752ce26d2e6bc096
BLAKE2b-256 2857bc1d6cd9ad7cfb0e7158c3c89c6c34fef60aa70763826bc920af9b2e18b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aee040c81eeb55d4e70787da691252570ef28a27cf070008bdee458bb9b7563a
MD5 21e2d586f78984a733ecf296d9360b52
BLAKE2b-256 9754e289f2f03a6f2ffdc898a29649a7dda7f73c61367d46a0a5770c68ab5f4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf8524fd7c3b5a79fd06d88356bb2b8cd2a385edc4122f1eb6f0802737cf5e84
MD5 b4296f88b91ba8fa71d6eb9133de4f6e
BLAKE2b-256 6dbf1dfca73c87e1b733118b9c3444b31439004d96409b3d330504813a1aac73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 1603dd5685846cdc0e677962333e85b8419d0edd5e8923e35c3b24973408663c
MD5 4ceb3d775ed4e208e399faa8486bddf5
BLAKE2b-256 2598f43ef58e304b762b61d01468a6aa91853e541385d5e6b6b0e0994a50f488

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af607ae8678db0a82482f52ff6161437ce3ef38b1bd2c7a274608f062d78df8f
MD5 da28f10df366cd25e04f5c107534b7ba
BLAKE2b-256 e53e7beec4c5e69fce2001cdd93df96934325632880ec859a8479cbf3bb0470e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61c65131928b3bafb530ed5882ffb5e718c099abba377441bed91fe488e4f9b3
MD5 b8e3febf4a238547ac0f6fcf93b33098
BLAKE2b-256 381f4c8fb05c19ab63068811aa7632096c698af8fa52f8a64ee64b8498c068e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f499e6d5e8a30a21b4a676a06e86c2324e165aa4e210087a575e31779b238ec
MD5 70666a87363448a1126f11d157c8aa28
BLAKE2b-256 7334245ff1bf985dd456e89d74da209555084c1eaec67658b246b5749c95b376

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.13-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 e3a88af150baed078dfb1306312c9346cdc527a452a59a167741f98c1d5e6534
MD5 03e1e2bf557a7f051625a17594cefa06
BLAKE2b-256 6c436d6a29e75bae8f73da7e8dae8dd0a569283f09c8042b0ec03e7571d8bf6d

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