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 dictionary that can be flattened and re-inflated

deflatable-dict A dictionary that can be flattened and re-inflated. Particularly useful if you're interacting with yaml, for example. Installation wit

Lucas Sargent 2 Oct 18, 2021
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
Easy compression and extraction for any compression or archival format.

Tzar: Tar, Zip, Anything Really Easy compression and extraction for any compression or archival format. Usage/Examples tzar compress large-dir compres

DanielVZ 37 Nov 02, 2022
Run async workflows using pytest-fixtures-style dependency injection

Run async workflows using pytest-fixtures-style dependency injection

Simon Willison 26 Jun 26, 2022
A Python script that parses and checks public proxies. Multithreading is supported.

A Python script that parses and checks public proxies. Multithreading is supported.

LevPrav 7 Nov 25, 2022
✨ Un générateur de mot de passe aléatoire totalement fait en Python par moi, et en français.

Password Generator ❗ Un générateur de mot de passe aléatoire totalement fait en Python par moi, et en français. 🔮 Grâce a une au module random et str

MrGabin 3 Jul 29, 2021
A tool to create the basics of a project

Project-Scheduler Instalação Para instalar o Project Maker, você necessita está em um ambiente de desenvolvimento Linux ou wsl com alguma distro debia

2 Dec 17, 2021
Import the module and create an object of the class LocalVariable.

LocalVariable Import the module and create an object of the class LocalVariable. Call the save method with the name and the value of a variable as arg

Sajedur Rahman Fiad 2 Dec 14, 2022
SmarTool - Smart Util Tool for Python

A set of tools that keep Python sweeter.

Liu Tao 9 Sep 30, 2022
Experimental python optimistic rollup fraud-proof generation

Macula Experimental python optimistic rollup fraud-proof generation tech by @protolambda. Working on a python version for brevity and simplicity. See

Diederik Loerakker 30 Sep 01, 2022
cpp20.py is a Python script to compile C++20 code using modules.

cpp20.py is a Python script to compile C++20 code using modules. It browses the source files to determine their dependencies. Then, it compiles then in order using the correct flags.

Julien VERNAY 6 Aug 26, 2022
A library to easily convert climbing route grades between different grading systems.

pyclimb A library to easily convert climbing route grades between different grading systems. In rock climbing, mountaineering, and other climbing disc

Ilias Antonopoulos 4 Jan 26, 2022
Create a Web Component (a Custom Element) from a python file

wyc Create a Web Component (a Custom Element) from a python file (transpile python code to javascript (es2015)). Features Use python to define your cu

7 Oct 09, 2022
Program to extract signatures from documents.

Extracting Signatures from Bank Checks Introduction Ahmed et al. [1] suggest a connected components-based method for segmenting signatures in document

Muhammad Saif Ullah Khan 9 Jan 26, 2022
Know your customer pipeline in apache air flow

KYC_pipline Know your customer pipeline in apache air flow For a successful pipeline run take these steps: Run you Airflow server Admin - connection

saeed 4 Aug 01, 2022
Simple profile athena generator for Fortnite Private Servers.

Profile-Athena-Generator A simple profile athena generator for Fortnite Private Servers. This profile athena generrator features: Item variants Get al

Fevers 10 Aug 27, 2022
Creates a C array from a hex-string or a stream of binary data.

hex2array-c Creates a C array from a hex-string. Usage Usage: python3 hex2array_c.py HEX_STRING [-h|--help] Use '-' to read the hex string from STDIN.

John Doe 3 Nov 24, 2022
Build capture utility for Linux

CX-BUILD Compilation Database alternative Build Prerequisite the CXBUILD uses linux system call trace utility called strace which was customized. So I

GLaDOS (G? L? Automatic Debug Operation System) 3 Nov 03, 2022
Retrying library for Python

Tenacity Tenacity is an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just

Julien Danjou 4.3k Jan 05, 2023
✨ Un juste prix totalement fait en Python par moi, et en français.

Juste Prix ❗ Un juste prix totalement fait en Python par moi, et en français. 🔮 Avec l'utilisation du module "random", j'ai pu faire un choix aléatoi

MrGabin 3 Jun 06, 2021