Skip to main content

RushTI

Parallel TI execution engine for IBM Planning Analytics

PyPI Python License


RushTI transforms sequential TurboIntegrator execution into intelligent, parallel workflows. Define task dependencies as a DAG, and RushTI schedules them across multiple workers — starting each task the moment its predecessors complete.

What's New in 2.0

  • DAG Execution — True dependency-based scheduling replaces wait-based sequencing
  • JSON Task Files — Structured format with metadata, settings, and stages
  • Self-Optimization — EWMA-based learning reorders tasks from historical performance
  • Checkpoint & Resume — Automatic progress saving with failure recovery
  • Exclusive Mode — Prevents concurrent runs on shared TM1 servers
  • Statistics Storage (SQLite or DynamoDB) — Persistent execution history with dashboards and analysis
  • TM1 Integration — Read tasks from and write results to a TM1 cube
  • 100% Backwards Compatible — Legacy TXT task files work without changes

Installation

pip (recommended)

pip install rushti

For the latest beta:

pip install rushti --pre

uv

uv pip install rushti

Executable (no Python required)

Download rushti.exe from GitHub Releases — includes all dependencies.

Quick Start

1. Configure TM1 connection

# config/config.ini
[tm1-finance]
address = localhost
port = 12354
ssl = true
user = admin
password = apple

RushTI looks for config.ini under config/ (or RUSHTI_DIR). To point a single run at a different file — e.g. a config.ini shared with other tm1py utilities — pass --config PATH to any TM1-connecting command (run, build, tasks, resume).

2. Create a task file

{
  "version": "2.0",
  "tasks": [
    { "id": "1", "instance": "tm1-finance", "process": "Extract.GL.Data" },
    { "id": "2", "instance": "tm1-finance", "process": "Extract.FX.Rates" },
    {
      "id": "3",
      "instance": "tm1-finance",
      "process": "Transform.Currency",
      "predecessors": ["1", "2"]
    },
    {
      "id": "4",
      "instance": "tm1-finance",
      "process": "Build.Reports",
      "predecessors": ["3"]
    }
  ]
}

3. Validate and run

rushti tasks validate --tasks daily-refresh.json --skip-tm1-check
rushti run --tasks daily-refresh.json --max-workers 4

Documentation

Full documentation is available at cubewise-code.github.io/rushti/docs

Website

Visit cubewise-code.github.io/rushti for interactive demos, feature overviews, and architecture visualizations.

Links

Built With

TM1py — Python interface to the TM1 REST API

License

MIT — see LICENSE for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rushti-2.3.2.tar.gz (189.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rushti-2.3.2-py3-none-any.whl (210.1 kB view details)

Uploaded Python 3

File details

Details for the file rushti-2.3.2.tar.gz.

File metadata

  • Download URL: rushti-2.3.2.tar.gz
  • Upload date:
  • Size: 189.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rushti-2.3.2.tar.gz
Algorithm Hash digest
SHA256 bf972e11670b3b530d785959a005f907b8aa8570fd2e2c60f4e13fe0051f3262
MD5 ecf03306fadca419ecd5aed4a7a53f9d
BLAKE2b-256 6a180aeeb259ffee956c8bbe5df38ed2c0adb455fff212c6e869be0cd57b00d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rushti-2.3.2.tar.gz:

Publisher: build.yml on cubewise-code/rushti

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rushti-2.3.2-py3-none-any.whl.

File metadata

  • Download URL: rushti-2.3.2-py3-none-any.whl
  • Upload date:
  • Size: 210.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rushti-2.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 67201ff0e576dc850cdaf66696f44ed2c977d43beaecef9b67c2839303fa7a65
MD5 4d732f6ea65180be694236b9b64e7cd0
BLAKE2b-256 4ac63c7bb73a2b96b035b987eff5d53c23de9f9e9dc5c46fc11fdec896c95bcd

See more details on using hashes here.

Provenance

The following attestation bundles were made for rushti-2.3.2-py3-none-any.whl:

Publisher: build.yml on cubewise-code/rushti

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.3.2 This release

2 files

2.3.1

2 files

2.3.0

2 files

2.2.3

2 files

2.2.2

2 files

2.2.1

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page