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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.17.tar.gz
Algorithm Hash digest
SHA256 4e6af6ba4ee1513f660aacb0bd84c95a402fe57701ff57ea937bbf567f565f15
MD5 12e31e443149cdc9f2e7cd4b8e920c7b
BLAKE2b-256 8ffdd451c8d55895f3090637302dffdc2aa9097a43bcc85062cc3703b81c083d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.17-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.11

File hashes

Hashes for tower-0.3.17-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 f0a9b55c0c23b910ac2165d1d39080bfd0a1e782348f9ec4ac853169a9db86f2
MD5 e8b5e06778323b35a402466ba84294e5
BLAKE2b-256 b3b22cb5b27683a5a54cac0b78a510fe124d184804c5adf61ca559aff62987d3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.17-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.11

File hashes

Hashes for tower-0.3.17-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6420e3afb32d3b71ec247a983352e00acc3060b89db27fd2d78cbd2bd5b7d683
MD5 a270dee6363810f0c69d0b76d326e37f
BLAKE2b-256 65c35ebd68c62e72cb71c85dd32389f50601abafdc57779183726b28cdf97c0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45020bbda3124db5ee7f8301809d706d98aa49645956678ecfc1c4b5f089cc66
MD5 e1c0d0ac63351135e06162bb12f949b6
BLAKE2b-256 cf9be9f7da3c2f4540c113b18f911bc0e8c75ab2dc6fef4f9d1b28416daa39f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 27c98580bfddc03cdd18d0bcd0b2ee5214e2d70dd46ea1b35c68bbb5f8dd9e41
MD5 7519b39625ffdbdcdfbe77a065a1275d
BLAKE2b-256 655c310fa734717a30ae461ccf02a30008e8e15e39dca1236b62acf029e17ab7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 eebebc657de996b97b346352a280688c6ed5035842e5565c87bdbb410974c65f
MD5 4317cf7a3096a34fb882b3182d8e81b1
BLAKE2b-256 b658d8508e9ef8362939768c27f9cc007aa3dc4e06eccea30852c116c7d55593

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3e18ddc2027aa82fb170850125909de3822b44fe7e1c7fd4ce975cb95ca0ae2c
MD5 1fb27675929e971ac6d8b3f1a2b84f42
BLAKE2b-256 bbe4dcbe222762b46076ebca4e312fd33d1233c8551fb1f082fac664d7d3c162

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71829420220886f7d61263c4a57d3c973d09db30a9301a05567dae61d5ac25b5
MD5 01f3abe3088a5d0eb71214b09385c537
BLAKE2b-256 4cc97903eb3b2d0bba690bb4b30ab0f5f4edb71056ba71b4bde4c172abcac442

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 dbceae2fe6b7f82a81f83ded053cf509be14b4e4ad20a5240beb470717ec1ead
MD5 f14cc22691c11a206aa4bc7e14cb0d17
BLAKE2b-256 b36199e2e6f21a757755e8a83f1cf80a5545576143d5d3bae2274b0725bcd7df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bd4aa4a49360ce7631e2f42e3b6e4a1301bcd30b07694b650ac6119d029ccee5
MD5 39fd3a7dd0449b57b8793dc71b6da721
BLAKE2b-256 6ae5fad76c7502939778c53f55b19ae5f790226dc9c14dfb5a0bb59d9bffa2ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e14f08bb81e7642807c8c6d5f1d40ddfadff2ca13ae59ffbd61765e9d1139d77
MD5 203f4db18730c157ed97d2e5ee78e834
BLAKE2b-256 249c37d21d18d9113b9d625dc9082141dd6af8819e320e78bb776346b148d5b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2441ed7b1b2bd7215e57b6fcfa69b639bc6ff8a0274f9891d1d9acc91d8864d2
MD5 c463429b02a9e456d75f9a6c76642616
BLAKE2b-256 bf868e4b5d478d8343e9f63271dd6e0c39de859c140980a83dcd3b4972d2434f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.17-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 7b10374f7fb4a946e7303e86c04304a058c7c5d3d407f0b070dbdcad3160fc2a
MD5 c10243c24da66309f3e148c26a83f216
BLAKE2b-256 7056f603eb4ed96ac31a502cfbb04eec06a156f1afe3da91ae51fc8fbe4eb1ba

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