Skip to content

biggerfisch/orbiteer

Repository files navigation

Orbiteer

A tool to control time-range based scripts, programs, and more.

Example Use-Cases

See the Wiki

Goals

  1. Provide a consistent, elegant way of running a script repeatedly with varied inputs in a useful way, such as fitting a goal run-time.
  2. Provide clear error handling and notification, failing gracefully.
  3. Be highly configurable.
  4. Be highly tested.

Wanted Features

Legend:

Symbol Meaning
Merged
🟨 In progress
🟥 Not yet begun

Input Generation:

  • ✅ Datetime range
    • ✅ Old -> New
    • ✅ New -> Old
  • 🟥 Iterate over item chunks
    • 🟥 In presented order
    • 🟥 Sorted

Target Measurement

  • ✅ Direct time taken by command
  • ✅ Number returned by command

Optimization Strategy

  • ✅ Direct ratio
    • ✅ With damping
  • 🟥 PID

Targets

  • ✅ Run command line
    • ✅ Args at end of command string
    • 🟥 Command line formatting
  • ✅ Python Callable
  • 🟥 Call URL
    • 🟥 Via request parameters
    • 🟥 Via request body
  • 🟥 Append to file

Failure retries

  • ✅ Quit
  • 🟥 N retries (before quit)
    • 🟥 Immediately
    • 🟥 Timed wait
    • 🟥 Exponential backoff
  • 🟥 Skip
    • 🟥 Retry pattern and then skip
    • 🟥 Skip and retry again at end of run

Notification methods

  • 🟨 Logs
  • 🟥 User-named scripts
  • 🟥 PushOver

Notification events

  • 🟨 Nominal completion
  • 🟨 Erroring out
  • 🟥 N% completion
  • 🟥 Time passed

Progress tracking & resumption

  • 🟥 In a local file
    • 🟥 Tracking
    • 🟥 Resumption
  • 🟥 In a database
    • 🟥 Tracking
    • 🟥 Resumption

Development

Setup

  1. Install Poetry
  2. Run make setup

Check lint & formatting

make lint

Fix formatting

make format

Run tests & view coverage

make test

Check lint & run tests

make

About

An optimizing chunking command runner

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published