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

Uploaded Python 3Windows ARM64

tower-0.3.12-py3-none-win_amd64.whl (3.4 MB view details)

Uploaded Python 3Windows x86-64

tower-0.3.12-py3-none-musllinux_1_2_x86_64.whl (6.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

tower-0.3.12-py3-none-musllinux_1_2_i686.whl (6.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

tower-0.3.12-py3-none-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

tower-0.3.12-py3-none-musllinux_1_2_aarch64.whl (6.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

tower-0.3.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

Uploaded Python 3macOS 10.12+ x86-64

tower-0.3.12-py3-none-linux_armv6l.whl (5.8 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.12.tar.gz
Algorithm Hash digest
SHA256 211b8ec295dc6eb8bf9ae99ef14a7a3d888c1cfd8b58d5095e97448984420c2e
MD5 adff6feb8dfbb8d5e296e1a6f86633a7
BLAKE2b-256 729ac8a7a52ec69608f199e0526cebcd914068e8beb98e980066926783b0ce01

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.12-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.7.3

File hashes

Hashes for tower-0.3.12-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 ca36fd92628e357b686e832a09bc87eb84480c8a3723ac66faeb635b399cd01c
MD5 da24dc1acd036a17cd46e71f840b3711
BLAKE2b-256 7292f113e4712dc75a2cbb730eb41e0e62b575d5f92eaba928ca6c9c7ecd8075

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.12-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e76dc4d4a8cf0d2400b37d631615cbf4d824fac260cdbab4f2b6d4a23487da50
MD5 e928c0503ee5ef6e69fe73082f00a33e
BLAKE2b-256 71295248a653d4ccceb69ca5bf1e39d868510b43b7b3e4d7441940e67a3599a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b5b9d20be789329ab06ce6c99d4f5190f166db9a0c8ce2ae7281dd52512338e8
MD5 222e8a7ca27973e7f5f6c303090a81a6
BLAKE2b-256 0ef5e01bbca8caac979b266eab9d8fc22461493a5da312f42fbbc0a300f46526

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5f8f8887e41c8ea8d3abd4e723bae66de79f1dcf13088edcf3ff1c67c7699263
MD5 5779ba6dbd310b675f52cc8fcfa160bb
BLAKE2b-256 8d88a48037346e1206db1aea2bb3287c14fee6e618f1f31697ce371c89615283

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 434a3d0f797ab6706030a3d559123f4c3dc973e627e78125b1add164f95f13bd
MD5 7c6fc4e09a7f6938fb64f8f6a9631365
BLAKE2b-256 6e3ca7ea9a441ec34d9189481211b623c58e20e3ba1b083150ddcc4a84b780a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ca1f7e910163ec3265af65954b4f5661bdfb09df54e64ec6a794dce3c313f73d
MD5 d2f42b7ca4779c28bb3e01a243c650ac
BLAKE2b-256 c7e5321d965cc265fea89d47a6117012551ab8de629999087b295394f757ad35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4b1b44b71534f8210f18a24103d597af1db91ecb6d66325e71e2ef0d6423153
MD5 8c21a19fa8fe61b02bf610c6e9bc143c
BLAKE2b-256 1a19a45733ae44d116727c91745f4b9e534a0579fd11efd682864ca9da46b479

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5c5791d73e032b6392219eace2014adc64db512c74a1f96d6680f253602631c7
MD5 b51d5c7ee798c2879eaea6dfa06514d4
BLAKE2b-256 4b93bd5d63bcc3852e63cebdb1e5bea1cb656d3c966ec46923338c03596d6922

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9190986c60ba9792760ca213e714d47352ef0837f5a9355d701f248fd88c1277
MD5 88aed282f42bd9970960d91788ec9a94
BLAKE2b-256 d3e7195a6950fe47645a8fbed8a2c71af2cd4e674f7fac75577612011d87b911

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4be510f684c56bb517e817e23893803c1cdf15d4eca47e995895f55bd5f0906
MD5 fd4ff03a30262f8a46cfdf361b1e78ed
BLAKE2b-256 768634d65462da1fabb2e2e7f5966195bcfbed8284b5da460eda1c631ee07617

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8c60b44e557ad00fc64a5116142c3fd904d561d8fa2f9761471bb3403dd73828
MD5 4552224570799b17cb91cb704848e6c6
BLAKE2b-256 e7efbc2155f4ba2795fddf0cc5b11ba83953b6ffdfd9909e85c5a89897678926

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.12-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 9aa1f4587b70d76dfb73477e983cfdf1019440239b2f008cfe4d8bcee5b0a642
MD5 408bd33a9a0d308e2d6c6eff55b02398
BLAKE2b-256 498098692a70cf837725feffa8fb1b752cdda6f5c396a784b17d6854002a8414

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