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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.16.tar.gz
Algorithm Hash digest
SHA256 4808e3a5deba433534053424c0313741b4e9feb85814cb26b9d253e40257edd4
MD5 994c77ab910ecd5b358745eb5c796efc
BLAKE2b-256 a4dea862ad930151d7816fcff281fb4f2c479fd037ac43922327f57ad6f893c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.16-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.16-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 5c5b40de367847844a38f422cf10eb6d0fa6e0d6ebfc8a49d0c44fd2d2e7ba03
MD5 4c1538da5406352663771540a6989b18
BLAKE2b-256 f2fb35d380f05b73e35ee7dfcd2f444ca2dc8cd4f5f425d3a0d4678bfe2448cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.16-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.16-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a58d8a568b2d3ab6565d4d939516a7a2b3ab1c4272048b58f8a10745bbd1bef4
MD5 051eaf101bde099bab0152c6833b3de4
BLAKE2b-256 be2638991d0714fa43eea26e931387c821992af022616801d01e0b236ec82c84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a1c183bad21fa2778be57580492448460e68d66bb48617719c28e091a49e8b02
MD5 ed0caa8e0b2f0f2d4402261abee441b3
BLAKE2b-256 20904566e6b2d4cccd20a2c9189f5d1968dc9cc950312c77fbaaebb262dd6a72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 3b37770a3f5b9b28d69f49906e4ba83e9a0fd18051592af1e632ab8dd4c51187
MD5 3e96e880a44e39d92ae43b279a2baa26
BLAKE2b-256 47217314729ccd0876e4a6f98d6142ea48da58f93614f5b43715a9f3f5b66437

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 9840402cf2847ac1d458d1f8b0c6979a9b6345d8d0ac4593fcaf1d4d72d8983c
MD5 0794ef092e22b36aa23a9171529f472c
BLAKE2b-256 521dbef90b5309568f810bd17165532878e23e6a33d9aef837c8ed1750d09416

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 091031ab703ecdf296c3b0c25ccdc5f42423771e760fba5d28da4930ad04bcb5
MD5 c1f4fb4048c73ccee650bb1508534fce
BLAKE2b-256 0a51ff0b6666d92e9b92111c874703f8cc90fe7365b2c4a459c7cf0bffacb6c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be9060f93bc601248d0802c4727b0596c176c1dd66f6718cbffc99b0b49418c9
MD5 0c2f187d3fd2513818158999f0422c65
BLAKE2b-256 41925edbec8a80126bc9e1e9762d28dc5a91d0d8565dec640b337cd798b8a96d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 46a3faaa83fb2aae74832ca995f1d8035231868b35318f3c1722682dbebbdb0c
MD5 395691ecbb1fe55ac744b222d9a0ded3
BLAKE2b-256 e319f87f67a3b3df88c897ec4b041e36c0be37d72eda5fe1eb4c5ed62956be0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dff9e73e80322ed866e5362c475c6addbc3d0585a79891d77c47ea13be999a81
MD5 87fd7115424e8c669f08ddb60767b9f5
BLAKE2b-256 f40e2ff502ff77886244a4d05b4d207b1c763a9cb8565ea3292ec4da9beee1af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cd702efd1b44ea743369480f85df7b049eed98f6a49f95d5d1e4821730492ea
MD5 4d12eecdff8d492820adc45ef458bbf4
BLAKE2b-256 5d983205ffb4fe338771ff8965fc2df623569d38ac92023ea01321d819262c3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7ccc766f2ce0eeda2b4de7007fb7250ac9eca25fdd6a52fbcbd0dfbdb5668e0a
MD5 2c01d30ad813f391ead359f99998b7d2
BLAKE2b-256 7f1fd367493fd7b9628e3da6aa53c8cb4605a1300ff17acb349a54af911615c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.16-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 d9e0e873c14e88f8201e8820c69b327fdad05635b155bff344ac5cda0f17cce5
MD5 88a3aff1b2644585ce3e7958979b3934
BLAKE2b-256 60f08d746bd0e463d4a9d7871fb56b37f940880ebf32f88b12f906aa716ce294

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