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

Uploaded Python 3Windows ARM64

tower-0.3.11-py3-none-win_amd64.whl (3.3 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

tower-0.3.11-py3-none-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

tower-0.3.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.11.tar.gz
Algorithm Hash digest
SHA256 1e02269d7dbe2d38ba7d51a248413bf72caa27d3cf87e6ed300e2c48094c2ef8
MD5 dace2da935afd0ebc02f90bea7ca7a0a
BLAKE2b-256 40c9427f51dd21d7d24d7319e5b1dcad2a32683ba3e671dcf1e68edeb9bf685a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.11-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.2

File hashes

Hashes for tower-0.3.11-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 b06447b5e48e242e78c9d05305317ad69877db66a88147e30586c9f5f3ec0030
MD5 b947769e255894bea09626f39e7fcf10
BLAKE2b-256 204c0f7e730a310637a0d182888dc508b7e24497f40f60578e8c0bfdf808ae57

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.11-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 50e9704c71cf7e84d528e69053fc8fb85a7600445443c7b4b9f28b01c742aeb9
MD5 ecc7b4c51133ad1ccbdce8a343c640fd
BLAKE2b-256 1b529ccd71b4596e4c4cf48e3ef16078406d0ec5a2c3ccd52fa1b190ad457c98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 84d7948ebd9257d77b518c27265c8eda4239cf8231ce5846cdf491e7c7d79ef6
MD5 4726415121822563c8177a7399e81766
BLAKE2b-256 91f822153cff01ff5de28c99e42502d3639a3d0d62ef83957dec7e4141b47dc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 099debaee8e75655282cbe06c6dafe61b83c715bfe2953e2b059a7090422f6b3
MD5 7af396cbbdc4b173ce0acea510f4f34a
BLAKE2b-256 2560461bd3ee7b8052b1ed3b5aa8aee3f165c92f0f9f67c56c9c32b1ecebd8e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 03a3c8981379c519b1caa3f2ff260dbd6e487b00e78ff94b480ba43ecd24ce34
MD5 99438787c71d6f1deb281371ce6d7a66
BLAKE2b-256 7f8fb5b350f7ba80ab7cafca019f41178f71624af6415807ebed04f559b00bac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3f39c83459e84494deaf907b04c8e5d3fbf251db5d83d4fe7fc03a8ca8f2c123
MD5 091635ec0210fa257db34c0ac56df539
BLAKE2b-256 1388bf8786ea879231c374041cab9a94d8f4218c30cddedc7537dc6ccff4d1a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c8bb3d18ee67259bbd25f8bbc168f8a1e78f68fcee54c284bab6bdfdfe5e128
MD5 7b878dac57bb447b7b8cc90d6ebf32d9
BLAKE2b-256 64156adee123b4780f87f84ca96c8f5c462f48c46af609864e63c171ee9d1ad5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0aa614889c51c1a73d415b095918fb8e292a054947b4217d4c1ad6908590d306
MD5 0a2a8d88c072a1e9d3d0057b4ec84391
BLAKE2b-256 069bee482585970e1879be6abfeda6a1ea30383dc41c7adfde9831a320047b30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 69afbacee2e2cfc5b23bd55f47d336130b41667d5b41d693e16120cf568d94e9
MD5 08cdd2c0d0629f270f1fb01d8eece6a5
BLAKE2b-256 9024f571ab56769472623f4389575a748caf897b42df9f8595f1b667cbe9c8b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d569a5d8b3c218710d75d31080e3e136d36f307eabb09829d351082695d7eb1
MD5 a2e750a690679d2948d182d778571441
BLAKE2b-256 fa1f6e48dc57c1d8a3b3479db2d7b6ded11b6c861f4e6a5c15be1855a8283a59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 777df62bf3a3374f920baa3859e2b25bcc47b4029d0d47553864e0660b1d98d8
MD5 9b7c814e46b571f40d81e6868d2ee217
BLAKE2b-256 16aa8d7e1ae4ac30aa4aa1a519a528cbe7f0670782ef3e02b02c9a7b9a0a8155

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.11-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 3a57b063486e16db608a0e780aa661bf68a435fff3346a1417ee7c1c3df9eb5b
MD5 e32b5405d140f7264754920cd95826d0
BLAKE2b-256 32ddc17ccea2da2c14484b6396f2d5acc768d13b96c78f9b589354d21f200d34

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