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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

tower-0.3.10-py3-none-musllinux_1_2_x86_64.whl (6.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

tower-0.3.10-py3-none-musllinux_1_2_i686.whl (6.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

tower-0.3.10-py3-none-musllinux_1_2_armv7l.whl (5.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

tower-0.3.10-py3-none-musllinux_1_2_aarch64.whl (6.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

tower-0.3.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

tower-0.3.10-py3-none-linux_armv6l.whl (5.7 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.10.tar.gz
Algorithm Hash digest
SHA256 64e0fbb8605bdd860a6b0b677357c6c494a326e08e59d32b4220a6273184cb8b
MD5 9548cfb8e9f3015bb1860fd2858d2054
BLAKE2b-256 3ecc9117daad685b98c320b84bc1298e30fbc85436c0cb422c238820826d156e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.10-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.6.17

File hashes

Hashes for tower-0.3.10-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 2a3b03fde03667e2816d60177ca1a9501abe00719c237a0958643725c1edf78c
MD5 72c2e7e0f33fe49a96aabe3e14c59dc6
BLAKE2b-256 0d1a260b5f055fbd72cd8ad2e39d90fbefe4d2c66e8c27cd809986b9e29f36e5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.10-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.6.17

File hashes

Hashes for tower-0.3.10-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 832b32cd2f9209093af28d0269a894dd45c301c428d09c48ffba37c07aa1223e
MD5 efdce92c8bf8020e3dd20fe1787f3d9e
BLAKE2b-256 8452b160f639d812774c2a49449d851764c67d968ea2eb76273a30827c3bd3aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e947b8d37ad2ef1746cc016dd4e2fd06be0e5a09bae952d450e90df98115cce1
MD5 b8dfe05c5b26925e6f9031b117a74dd9
BLAKE2b-256 cf49ecafd75aaae82275b19faef0b39316ba9eec8f70ef8d706884e08e93a4d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 4aedcc30f4ee692baa23df551ad0d599e258eaa3808e75af365d5d0a6c536c15
MD5 e20316177f5410cf26c888ef1ef8f2a2
BLAKE2b-256 7c7c15e9311701a3f160b643149b54e88de305699ec2ab2a81b71295f6319117

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 10befc063320bf3c73cf7d16f2ff50ee7ef06869cb9ab66fc100e53033788950
MD5 40ec167c5b085102085cf21eb91463c6
BLAKE2b-256 74aa82f4a987a6e87822ef2737a813570035ade2bb654cb8dddc5450f2f6aebd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d9a5eaa4e40fd46efecb81fca6609f802602989ffbbd0a0d008e34de0870ab5c
MD5 79fe73664cfcb652b5be1ae9cdf2045a
BLAKE2b-256 d7fbaf36ca16a023b52261d79156cb48ad17be78c49ef496b31509c7b83763c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cf837591c9ff1eb5f3c26305230293699125ecb088bf46c6c0b049f57a759f0b
MD5 1ff0641910ad39cd07b6dc4f8148591d
BLAKE2b-256 f3c9007767be473a4f6acebaed2da18d6099dc023aebcd154954f9fbaba31412

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 226f37da090dbbcd26a96e130181b6a2c03704f5802eb2bceaf39c231a93bff4
MD5 4f5fbdddcc2289c160e715b7d059e16f
BLAKE2b-256 12ee42734b00a2559deff0ed380ef54dea6c4c9d6c89c1b177ec5cae569f67fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 84d2647804453aea7ab69738ab9bce30bf26aad594ff23f92ba04078e39f2763
MD5 dfe7daee73ead6406613d0ef75633f12
BLAKE2b-256 5273f3f282f761f0b885e1fdde50279f2ed0ad017fab9f3d98d069a72cd960d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e3e8aea20f41827ed158745ef37846647a4f05b33124904bd3c1ed14560fb7c
MD5 41ef9df9497c7e47697d82b016708d4e
BLAKE2b-256 29673f89d477117d98c5b675be6627aceb27f1fe69f569ef154277fb4eb1c777

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 498d6f4b4a29d290c6754cd98f46df9b0fce14027883400e98ba3137b3b5e696
MD5 6129e6a763e4b3e95c6dcb43a5c2b9f8
BLAKE2b-256 76bb1a9453ec3976841d614de621d27c5ac8348162387736b0df68f8425377ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.10-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 f242343eaeb0688ff3f05e86681452b57d90b9ebd6e7bf9c81c93ec2414aa8bc
MD5 179ada1c99a4c8703b54e44cee6c1e95
BLAKE2b-256 c43119764c8e9630060560f13a55cec3d49cc8572463b2dc3406a563b32c623b

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