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

Uploaded Python 3Windows ARM64

tower-0.3.7-py3-none-win_amd64.whl (3.1 MB view details)

Uploaded Python 3Windows x86-64

tower-0.3.7-py3-none-musllinux_1_2_x86_64.whl (5.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

tower-0.3.7-py3-none-musllinux_1_2_i686.whl (5.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

tower-0.3.7-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.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (5.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.7.tar.gz
Algorithm Hash digest
SHA256 54b5ec41ed23c9f740deb971adfd3f9f7b73e1ea3d134f5317fb532feda64370
MD5 aca6157e8351ad10edfc83ec6c5b9667
BLAKE2b-256 ee4ac268a7b7213b8694fc826e6d2ff515ae0a3d2737313f8047d33d3dfaa064

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.7-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c8b5200a4a93b3e1955f4f8ba9a2f94840cc2a289a6ea7075c80ffae69f27139
MD5 464d6ca3c48c78cf59020b9aea86cdaf
BLAKE2b-256 677120397cbd2b595c39b006ed4e8f6961d7602f6e634b90c6d4c04ac9f65e5d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.7-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.1 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.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d3a9b933f5f444a0083905f2fc6f0e55bbc4a91b26b7b258e3f234345e30a517
MD5 91ca76c09d957d69e8eac97622c177c2
BLAKE2b-256 bfab137021aae622958a331c32f10e8b122022d0dc6cc9e8d164dcad0e408991

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 90975ee83c4780c20170c49b3d253fa1c0dc4df2ad59b86d49338f7a82361804
MD5 646dfdc1469a19c1937e19d573995539
BLAKE2b-256 081acfb7e0a44fa02b430070b17cbe1ec00997579662f4cc450f9f083c3574f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 686e8475f9053e1767247a5e7cbc528345d7a338b6e37a691ffdbe7875b670a6
MD5 92bd261ffc54d566ad53462b7eca8d3c
BLAKE2b-256 0134d6cfde66469ab912bfb72f80318dc9c53d18d7bce40f5b1921c7ff628d85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 ba6b8bd5899bd08464313acf4c3f16ca1ca560f65f938ad808424804a45ea3de
MD5 77585100bbf30d7f6166d547a83747d3
BLAKE2b-256 467557194aa96c472d0f3637db5d1bee64a64a8c6a897d6a56fcfc57c0d6f24f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aa0c64a8723af53c3572c3e4eef0cf73eb90e7ae63d0c1b4bae9730a1c55a142
MD5 2f3184c3aa15ce9610b2abab33d5a6f1
BLAKE2b-256 6c0b7649e15c9fbedcac61fc1686a20bb5f7765b711666741351db687fc1a8ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e28fbf85f5ee3c1e25040161c22bbfd2c631a6e5d53e0d89b8df635da866992
MD5 ea5270f3a0aba75e1f689348cf719ca7
BLAKE2b-256 46a15c4edee0a0897d8542858e7fba6912fea93104dca3d49c2046a62a2533a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 7344008eb9c461fd46bba8aaf8b0eba7d52ed1be433f5ad404cdaabc178f953a
MD5 ea73b7f2aa92607ee0882d1638ae9bb9
BLAKE2b-256 1d18fe25bf18150e6c16ffb3ad554bab9ebcc88f1af41a47c0c9cbe612fd6132

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c7edcab92fd6395f8d2fea84457a4a93c8c5f4083b3a42445b5be5352bd6cca9
MD5 f6ef254886a22130e0b5cfa86c1f4757
BLAKE2b-256 8de3e8f30079369289375401c35125382705d5b55072f843185eccb48c083a06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cbe3b1cae524965ae90dce994e4f2f6440ef6882a6ecbadf0d2a8f2ce3662745
MD5 abbe28327ab820d61b5d9dcb0e75acd7
BLAKE2b-256 5c80a34202c843bd596b28afb9d72987af78e49c40fa357fc689392dd6884e6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 163882ac858401ce51bc462a7680270170e45ebfc2e117c1fe25d862f82cebf8
MD5 49fabe02b9cd143a6f964524562a2383
BLAKE2b-256 3826c0df595d2550d029e9b7413adc08fe3bc0ef2751943e2a0c547850cb24bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.7-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 04d0d723479b1c14b161ac8892ec59748c37a62d16c57da5c8671ac4a6acde66
MD5 e69f7fd8611e92f477f68faff8d52393
BLAKE2b-256 d58909baf0a490b4dd91cd37be0d6306056d2dc1fdf850b52b126e156d6f38a6

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