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.9.tar.gz (130.6 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.9-py3-none-win_arm64.whl (3.1 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

tower-0.3.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

tower-0.3.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (5.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

tower-0.3.9-py3-none-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

tower-0.3.9-py3-none-macosx_10_12_x86_64.whl (3.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tower-0.3.9.tar.gz
Algorithm Hash digest
SHA256 be03f81de926af5c7d16b4e3518874047762cee2d7e7ac737dcd40f2b0880079
MD5 8a3b93ce38fbcaecd7bbbddecb431624
BLAKE2b-256 7f8236ff6f5a6e5d03cae7fcfaf7d073b02821e699c324ef2f5e6f2ed5941b0c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.9-py3-none-win_arm64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.17

File hashes

Hashes for tower-0.3.9-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 44d43462b6b2d29cf12c431dea63f546c66fb412ed18a76804ecc36619d8ed73
MD5 a7988ea40128394087ad17517fd9e3be
BLAKE2b-256 df181211f7b999cb86589f81b00245c0dc5714a29bdc5a830f1e95f77d90185e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tower-0.3.9-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.9-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 5058200913fb63dcfb618fc878530bb4252d4a95cb7c8bfddf0829acec7ab03a
MD5 4bf06ac65f12606aa831dc4983713033
BLAKE2b-256 03223ed70904e82c735649764dc47d71fcbf4180e1d952f092573411b4c2a521

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd4c2d99a3c26e09f266f0081b6e5a01cb823bf85e66872652396c810b2831ef
MD5 89b0474e588acf3ec621512c89d80617
BLAKE2b-256 3687857374cff37c21d889819809ab39d3854bcba08fbdb10e24603461aef456

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f7056dd75b9317962491af9f7d623cf4a7f4813f8740d5635a48d8c1964efd88
MD5 71da331857b70825027f358a1e4fc97b
BLAKE2b-256 0b89a327e100e606fd992e082fe8f581ff9671c3aa0748f9c164e8eacae1b7b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 7d342a2cd3988424e1e99d99e2474749e226ba5a816e8c25635c2777a7225a09
MD5 9e4be48274a1754a2294749d314f30bb
BLAKE2b-256 00203c3c2e9d4a8be9a62b00cd48e020fecfc679afbf0820bb69e2f2ad056e45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 897b9bcd8ec4c7bd1368560d9f4a4f9de1f7df4447f0280b54b02db47c2d6a26
MD5 ac7847aca421f94252d2cbf36a1cb935
BLAKE2b-256 a547080776d154649b60a7b90ba45c8b0b95231e40f73843c699691a4aa38ea7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb5950b3afc7ee765f25245956827a2fda1bdfce90b06277c4ab9b35d351036d
MD5 379ba85b34cbc1c91b04f87f7f3b861b
BLAKE2b-256 5c0a7170c0b308cf10e29e48271889a2211f796b2245664824391bdc4faacab6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a7a14629ac5399b60824e93ee9de98a3adab44dd99136e43967ddae20198feba
MD5 9f554d0138954c2698c684b86bda0fd0
BLAKE2b-256 e0840f15ded8a515003838f385b740cde1323717e2084c719255557d6b99b8be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f17cba4a29ee6b2590c10c900ea9f8dfeb5e02a4f2ff533929196a7ce2d15b4d
MD5 c399eee2d416df75ea3effb4f2ca3ba2
BLAKE2b-256 a2cf97852fb1d72b1141c9a3f98df84f11591e038ee0be320ecc96050198abe7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de1eb320a459a7e1a51858139beea2bf5abb150dda35f6f9bd0d0157ebc96a5b
MD5 cc28fbe8a8f2dc4a8ec56fd5a04039b3
BLAKE2b-256 3d9a8a17c79b3808463a96604255efed959c56f05e2b53c59cfbc81a9db8ecc5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ab0007db5de32f301705755173ef4c9fd382788a94935f81cd1be0df76a61274
MD5 363fd5546052274bf30d0650a30e2e06
BLAKE2b-256 e338e403bc053d5c0d13cde1464a4db6633b58ce968060ba06e9db448cd87e66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tower-0.3.9-py3-none-linux_armv6l.whl
Algorithm Hash digest
SHA256 ec2390dd2503180b223dd0549799d168f87ac9244e5cc365700b6788bdb73a01
MD5 d7dd38b6d8c54926884160be52d82b04
BLAKE2b-256 9b06eaa9eb93bcbae3c2305c1b8c8647635347853c21aa8ffda89e5e992c1030

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