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

Uploaded Python 3Windows ARM64

tower-0.3.19-py3-none-win_amd64.whl (4.2 MB view details)

Uploaded Python 3Windows x86-64

tower-0.3.19-py3-none-musllinux_1_2_x86_64.whl (7.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

tower-0.3.19-py3-none-musllinux_1_2_aarch64.whl (7.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

tower-0.3.19-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

tower-0.3.19-py3-none-macosx_11_0_arm64.whl (4.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

tower-0.3.19-py3-none-linux_armv6l.whl (6.8 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.19.tar.gz
Algorithm Hash digest
SHA256 396919040108358524e3264d9c966c5af3d04acda372fdfeb39fa9f9a07e83c0
MD5 b2cbdcada513596395f2cd8aa2aeac14
BLAKE2b-256 4e5347aa84b2f95574d169dc4e8e814576f12396e36ae379af49d6a313dc5099

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.19-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.17

File hashes

Hashes for tower-0.3.19-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 81ffc3ad828a617eb74cce308e0d0a5bf3e8b3d6fa4a988338f2e3f7237331d2
MD5 2b7c0db002a93c3c530e4bbbcc07269e
BLAKE2b-256 dde778c5fbf8c5ce386298b43f95025ca23cb922ce22c9902259e2bf11dc65e1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.19-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 60123a12660f3ed58842a9ea3061f31b640e442e7196c2f689330cf7509919dc
MD5 ada5e7a73ab8885dba0171e0ed74976d
BLAKE2b-256 600578250e79ab195b4fd248c6309d90a1bb9dc2ab51e40600b84b7fb7dab2de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 00663420f0571d8c2f7898b7db99a203f4b307ef78db82d2683044f940e3ba82
MD5 a409384e693078b52afc47fc61707bd7
BLAKE2b-256 0e8b43286632b69a5a47403ba76414e076fd730c278cb83fcaa8beb99568151e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 be8dec691d41b16edd8df6fc7f8cf663da30b0286462ad945b5558cadc5adc42
MD5 331d25eaceb7a357c5193e2ac8152f18
BLAKE2b-256 d09148b3a7c0ee3737012277b46852686a8c70f7c820f5408b6a50be802b499b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 8ba1968bdf1d3f6b87c995f8cc0fbd2722f4e896190a58d83dc26cb2b8e63970
MD5 f31b5d0956d6dc70f190559e3bcc92ac
BLAKE2b-256 63eaaa9fb7e675c76f92206b7de1637f54b94a7fa75e7090fba2d488502f3ce7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c72826657cbf782db04e99a7fcae4faf4309463a06ae862c7911e08da3979fa3
MD5 3691d387db25d8d4bfc9d79a4314e276
BLAKE2b-256 91d31225d7548d27d03ec5f04bc4fdc321bc30ffab4c7cbc5b9937a945b9cc46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab8f1b2fc414295cefcf6286ce4739761febe41ea4b2715725815dbe411d9d96
MD5 0dcdc9dafc5a54580f459604b30ac349
BLAKE2b-256 9485c94b4643744a86eebd30da899cd55e9453e2d46087f175d89896eacf9036

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 05fb98afc061cadf67faef109dff764888528d9ddb6e7573c59a5bbcb2a04715
MD5 da3af4afa11d43f65dada268d421f74a
BLAKE2b-256 16cedb1c6f45585f91164a7f4159c0014d90f034c8a5cdad1d4ff2b1996298c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2389be395008cd8d6bc4308e98d10b1e1d4b3f3474d49a5cf7e9c981b3b70996
MD5 7e6182fcc631d598720fb5d7d9237c77
BLAKE2b-256 94b43957cd3ac4e18e3299f55d46fe5954554d126ebd7c4f7da676128070721e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 422279b02e9d3edbcdfb700f02903872da7f6dc4c51a28df0e30214537805af7
MD5 11638a36a89fd7f0489c2e8806399992
BLAKE2b-256 a8bdf971a4f992b3d5df1c668baafb4bfed49c456f85892e4a4ed493cfccf2bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e753490d54f041e24a04ce14074bb059a8fe6f49fa4c6545dcccae8278b86303
MD5 7cbb53b521678f74cee0b3d4f0513f94
BLAKE2b-256 43cc2aed464c09ad1de54a15f2019789b92cdd26952439d6c87100c6e446bd07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.19-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 26af6fb850ffb77c199207b1ee9b3c25a057044f54dc1ddd999caa8bedcfc6ed
MD5 a2eed6180f42c1b3d92aae38d5a23f67
BLAKE2b-256 722697922a157576f83f788166430a6126d6eff4f5248f6469af547ff5984c9d

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