Skip to main content

Tower CLI and runtime environment for Tower.

Reason this release was yanked:

Critical bug in building bundles prevents deployments.

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.8.tar.gz (129.3 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.8-py3-none-win_arm64.whl (3.1 MB view details)

Uploaded Python 3Windows ARM64

tower-0.3.8-py3-none-win_amd64.whl (3.2 MB view details)

Uploaded Python 3Windows x86-64

tower-0.3.8-py3-none-musllinux_1_2_x86_64.whl (6.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

tower-0.3.8-py3-none-musllinux_1_2_i686.whl (6.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

tower-0.3.8-py3-none-musllinux_1_2_armv7l.whl (5.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

tower-0.3.8-py3-none-musllinux_1_2_aarch64.whl (6.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

tower-0.3.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

tower-0.3.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (5.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

tower-0.3.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

tower-0.3.8-py3-none-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

tower-0.3.8-py3-none-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

tower-0.3.8-py3-none-linux_armv6l.whl (5.5 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.8.tar.gz
Algorithm Hash digest
SHA256 68cc48e5a5304279f81cae47ca690c4f8f11785e122d26d98f5c33aa777a5dda
MD5 772a732ec3c87ea8103c763c816ed7a1
BLAKE2b-256 777fce877d43de1f6a81eaa06e98a11e4443d9a67d42d02c82f72a8833df3d62

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.8-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 cbd32135ad458381a30559bb1755a7cc6b179047b6cb59de3b566a1023406db7
MD5 61f3a7fd05d4e617e7630c15dc61128d
BLAKE2b-256 fe8b4c43d5a42135d2e90527fc68e7e4a9002b67b7299f91921819eb4a2607d8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d73270ef4bfdbde1dd105552b205c18b0e85d0c76354fe6e4cbeb2d5037bd0b2
MD5 a2195619019c562dc254e588d09cb9d3
BLAKE2b-256 7a8f4a392c1d23f82512e423d9bc0d27395db4dc3cf36a317345b40db46fcb13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1b7b4d6850968a11ab74e7019956ff2bc2b1ef2909e005f88e16d95bc2069ec3
MD5 5d328813cd6acb455463286ad9308ed3
BLAKE2b-256 0b337c10fb8983484a19510217b7ac776df32746fb6cc0031d66bdaa89e0f5c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 46ccdd64755faf5ed7ab363e29aaf43cc2066c98f458319b0a69409255ad796e
MD5 02d7d9b679cb9131b2d00bfa5dc635ea
BLAKE2b-256 b807cfe971ae00e0710a7a8fe59b6cc3df0ee3053bc96df74a6c8f316d1e5f5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5e503af71a6f2a2c6cd01a5e6c93781b0c568ce42cd036aa0153ad2d198d48ef
MD5 a5b78d7cf45c6aa2899f51d74853023d
BLAKE2b-256 96d6ad1584fe92a513fe732f600aa482cc1f4724b132e9dbf09efb8f7780cf98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7fbf43b3cff8272a80b884b21ae5d924d6cf3aa3f1e9770b19ab0d54483eed50
MD5 775bb242fa798ed3e5728abd3614f82c
BLAKE2b-256 5b51db8c2c236aa047f322aa083a810bfe13022b6fd47282fa7712f2e1b1b92c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8eaebfae261b9284f936d66d8c790b231bedc3b0124f347de2726c3cac7c1802
MD5 8619b675c9ae445247c87a975cbcf1dd
BLAKE2b-256 64d65f00e36bad212f3ff1be247cda89af4e7c082ec4ef0f3bdacbbf9052adc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 09a04c14a78fc17e1aeb11c043ea4be3b868bf5cd41a11d0c19884452ff52696
MD5 f9e81e486e58d3396c06bff56d1ef941
BLAKE2b-256 359814f0a982ad0621d510d321010d7eb6835ffa055d8468231546a54a9781e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8e568e9ffe0f2a0a6dae6db7458d5768d4b48d8e3d1170cc13893a29bceb4b8
MD5 ed446ce8dd8a52471afad806008eb538
BLAKE2b-256 e424695fdf728eca9cb32bd626372b0729baf38b22f8750f690d52eed90f4f4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4001bbed949fe6882eaf88b29a4982508e7aadaf47e0d826134a87edd19b228
MD5 2b5e0b32e5b7a51f3ea8f0bfd7b1160a
BLAKE2b-256 47eceab3482195f293d9b98016d9dbd52ce1e0f1e94d9b232c92383b597e596d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ccbb06e6bded4a543d5b25cc1e60d0f77b6dec2a15a3f92d36c38e4145b51f83
MD5 70e06ec387d13b2a8d0f78a21d705cb7
BLAKE2b-256 03a38466ab1a838cfc9b40bf050c639560a7dd8af2706fa38eeae6bb6c87bb02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.8-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 041e1ad258785084500b8dd5f2cc73dc4220f6ca7d369078117c5818b92d44b7
MD5 9307b23103c5d61d08ff4b24f9d4a338
BLAKE2b-256 8ccbc05e52a03bbaf845533d7e3e110e1dde8fc9b5946c0faa6ea3a02112f795

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