Skip to main content

RushTI - Parallel TM1 TurboIntegrator Process Execution

Project description

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.

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

rushti-2.3.1.tar.gz (188.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.1-py3-none-any.whl (208.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rushti-2.3.1.tar.gz
  • Upload date:
  • Size: 188.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.1.tar.gz
Algorithm Hash digest
SHA256 8d5acf5d8499d4128d9239c1260ac7768ec0a57b5dce7144a43e7c5bc92a12f3
MD5 ddcfef6ced0c121835c0b9c69c2fb431
BLAKE2b-256 20fd27f42e236de030fa62c5a627fecf2b49e0d889ca51c823149d10223fcad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rushti-2.3.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: rushti-2.3.1-py3-none-any.whl
  • Upload date:
  • Size: 208.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7a4c55f1f7970166322c5dfdb52555da1e6b8cfcde2085298cbc4d401e43afb1
MD5 7c677aca17005fd8791f7cb8528905b0
BLAKE2b-256 63488845b5839cd14e64070cee0671bd81267e67c06c556864a2279749c0835a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rushti-2.3.1-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.

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