Gradually automate your procedures, one step at a time

Overview

Gradualist

Gradually automate your procedures, one step at a time

Inspired by https://blog.danslimmon.com/2019/07/15/

Features

Main Features

  • Converts a markdown file into interactive steps
  • Saves results into another markdown file
  • On 100% automated, saves results into a script file instead

Ancillary features

  • Sublists are marked like 1.1.3 (first step, first substep, third sub-substep)
  • Go back one step

Keywords

All keywords are case insensitive.

Starting keywords

Start steps with these words to use them. Using these words also makes it clearer what you want your user to do.

  1. Enter: store single line answer Synonyms that trigger: Type, Write

    1. Store {response} in variables like so.
    2. In steps after previous, {words} will be replaced whatever you entered.
    3. Input is entered on a single line
    4. Automatically triggered if there is a {variable}, even if a keyword isn't present
    5. If no curly braces around a variable, everything after 'Enter' becomes the variable name
  2. Describe: longform answer Synonyms that trigger: Explain

    1. Store multiline {response} in variables like so.
    2. In steps after previous, {response} will be replaced whatever you entered.
    3. If a {variable} isn't provided, words after Describe are the variable
    4. Type enter twice to signify the end of input
    5. Starting with a question word or including a ? will force a step to be a multiline answer
  3. Run: runs code Synonyms that trigger: Exec, Execute

    1. Run this inline echo shell script

      • Start the step with the word 'run', case insensitive
      • This will run in your shell, whichever that is for your OS.
    2. Run this multiline python script, starting the step with run.

      import webbrowser
      webbrowser.open("https://python.org")
      • Start the step with the keyord 'run', case insensitive
      • Code needs a code fence
      • Language suggestion is required
      • -I is an arg to python. Include as many options as you want.
      • If an output file is specified with curly braces, it will be saved in the working directory; otherwise a temporary file will be used.

  4. While: Loops until condition Synonyms that trigger: Loop

    • Format is 'While condition do task'
    • While condition, keep on doing it
  5. For: Loops over array

    • Format is 'For [el1, el2, ...], do task'
    • Example: "For ["blue", "orange", "yellow"], use {} marker in your drawing
    • Generates array-length tasks
  6. If: Conditional Synonym for else: Otherwise, elsewise Synonym for then: First comma

    • Format is 'if condition then task1 else task2'
    • Example: "if it's sunny, then I'll have a picnic else I'll read a book inside"
      • Variable its_sunny would get a value
  7. Click: Have the user click somewhere

    • This can be automated with clicking with x,y coordinates
    • Use the browser extension to select the element
  8. Select

    • Select from multiple options, usually in a dropdown
    • Use the browser extension to select the element
  9. Open: Open a file or URL

    • If opening a URL, default browser will be used
    • Include the words 'with program' to specify which program to open it with (i.e. firefox instead of chrome)
    • Include the word 'new' to create a new one if one doesn't exist
  10. Import filepath:task list

    • Include a separate markdown procedure as a sublist of the current task
  11. Anything Else

    • The point of this is to be as compatible with as many procedures as possible, so don't require keywords
    • There won't be any suggestions for automation

On 100% automated, saves results into a script file instead

Anywhere keywords

  • Personal: Input is entered with no visible output like a password (i.e. Enter your personal password)

Defaults

  • Saved files have tasks with
    • Timestamp of when tasks were completed
    • How long tasks took
    • Whether tasks were completed, skipped, or not done

Todo

Shortterm

  • Separate logic for input, output, and processing
  • Logic
    • loops until step complete
    • if/then statements
    • Set script variables like timeout, or autofinish after a certain time
  • Configuration in a yaml file

Longterm

  • How will this interact with mdx?
  • How would you reference other documents (i.e. imports)
  • Migrate to rust
Owner
Ross Jacobs
Herder of 1s and 0s
Ross Jacobs
A time table app to notify the user about their class timings

kivyTimeTable A time table app to notify the user about their class timings Features This project incorporates some features i wanted to see in a time

2 Dec 15, 2021
Python bytecode manipulation and import process customization to do evil stuff with format strings. Nasty!

formathack Python bytecode manipulation and import process customization to do evil stuff with format strings. Nasty! This is an answer to a StackOver

Michiel Van den Berghe 5 Jan 18, 2022
A collection of tools for biomedical research assay analysis in Python.

waltlabtools A collection of tools for biomedical research assay analysis in Python. Key Features Analysis for assays such as digital ELISA, including

Tyler Dougan 1 Apr 18, 2022
✨ Un bot Twitter totalement fait en Python par moi, et en français.

Twitter Bot ❗ Un bot Twitter totalement fait en Python par moi, et en français. Il faut remplacer auth = tweepy.OAuthHandler(consumer_key, consumer_se

MrGabin 3 Jun 06, 2021
A python app which aggregates and splits costs from multiple public cloud providers into a csv

Cloud Billing This project aggregates the costs public cloud resources by accounts, services and tags by importing the invoices from public cloud prov

1 Oct 04, 2022
DUQ is a python package for working with physical Dimensions, Units, and Quantities.

DUQ is a python package for working with physical Dimensions, Units, and Quantities.

2 Nov 02, 2022
A python package containing all the basic functions and classes for python. From simple addition to advanced file encryption.

A python package containing all the basic functions and classes for python. From simple addition to advanced file encryption.

PyBash 11 May 22, 2022
腾讯云轻量服务流量超出限制自动关机

LightHouse_Automatic_Shutdown 腾讯云轻量服务流量超出限制自动关机

132 Dec 14, 2022
This program organizes automatically files in folders named as file's extension

Auto Sorting System by Sergiy Grimoldi - V.0.0.2 This program organizes automatically files in folders named as file's extension How to use the code T

Sergiy Grimoldi 1 Jan 07, 2022
✨ Voici un code en Python par moi, et en français qui permet de générer du texte Lorem.

Lorem Gen ❗ Voici un code en Python par moi, et en français qui permet de générer du texte Lorem. Dépendences : pip install lorem_text 💖 Enjoy 🎫 Mon

MrGabin 3 Jun 07, 2021
An OData v4 query parser and transpiler for Python

odata-query is a library that parses OData v4 filter strings, and can convert them to other forms such as Django Queries, SQLAlchemy Queries, or just plain SQL.

Gorilla 39 Jan 05, 2023
A quick random name generator

Random Profile Generator USAGE & CREDITS Any public or priavte demonstrative usage of this project is strictly prohibited, UNLESS WhineyMonkey10 (http

2 May 05, 2022
This is Cool Utility tools that you can use in python.

This is Cool Utility tools that you can use in python. There are a few tools that you might find very useful, you can use this on pretty much any project and some utils might help you a lot and save

Senarc Studios 6 Apr 18, 2022
This tool analyzes the json files generated by stream-lnd-htlcs to find hidden channel demand.

analyze_lnd_htlc Introduction Rebalancing channels is an important part of running a Lightning Network node. While it would be great if all channels c

Marimox 4 Dec 08, 2022
Simple yet flexible natural sorting in Python.

natsort Simple yet flexible natural sorting in Python. Source Code: https://github.com/SethMMorton/natsort Downloads: https://pypi.org/project/natsort

Seth Morton 712 Dec 23, 2022
Edit SRT files to delay subtitle time-stamps.

subtitle-delay A program written in Python that directly edits SRT file to delay the subtitles. Features: Will throw an error if delaying with negativ

8 Jul 17, 2022
Fuzzy box is a quick program I wrote to fuzz a URL that is in the format https:// url 20characterstring.

What is this? Fuzzy box is a quick program I wrote to fuzz a URL that is in the format https://url/20characterstring.extension. I have redacted th

Graham Helton 1 Oct 19, 2021
RapidFuzz is a fast string matching library for Python and C++

RapidFuzz is a fast string matching library for Python and C++, which is using the string similarity calculations from FuzzyWuzzy

Max Bachmann 1.7k Jan 04, 2023
Simple collection of GTPS Flood in Python.

GTPS Flood Simple collection of GTPS Flood in Python. NOTE Give me credit if you use this source, don't trade/sell this tool, And USE AT YOUR OWN RISK

PhynX 6 Dec 07, 2021
MicroMIUI - Script to optimize miui and not only

MicroMIUI - Script to optimize miui and not only

Groiznyi-Studio 1 Nov 02, 2021