import python code as raw to avoid reindent

This commit is contained in:
Ruben Fiszel
2023-02-05 16:02:53 +01:00
parent e1b9247e11
commit ab432d628a
6 changed files with 122 additions and 115 deletions
@@ -47,7 +47,6 @@
if (!keys.includes(key)) {
delete args[key]
delete inputCheck[key]
console.log('DELETED', key)
}
})
}
@@ -0,0 +1,10 @@
import os
# flow is considered recovered and a success unless an exception is raised
def main(message: str, name: str):
flow_id = os.environ.get("WM_FLOW_JOB_ID")
print("message", message)
print("name", name)
return message, flow_id
@@ -0,0 +1,37 @@
import os
import wmill
# You can import any package from PyPI, even if the assistant complains
# Ctrl+S to format the code. Autocompletion available.
def main(
no_default: str,
name="Nicolas Bourbaki",
age=42,
obj: dict = {"even": "dicts"},
l: list = ["or", "lists!"],
file_: bytes = bytes(0),
):
print(f"Hello World and a warm welcome especially to {name}")
print("and its acolytes..", age, obj, l, len(file_))
# retrieve variables, resources, states using the wmill client
try:
secret = wmill.get_variable("f/examples/secret")
except:
secret = "No secret yet at f/examples/secret !"
print(f"The variable at `f/examples/secret`: {secret}")
# Get last state of this script execution by the same trigger/user
last_state = wmill.get_state()
new_state = {"foo": 42} if last_state is None else last_state
new_state["foo"] += 1
wmill.set_state(new_state)
# fetch context variables
user = os.environ.get("WM_USERNAME")
# return value is converted to JSON
return {"splitted": name.split(), "user": user, "state": new_state}
@@ -0,0 +1,5 @@
# import wmill
def main(x: str):
return x
@@ -0,0 +1,14 @@
import wmill
def main():
# A common trigger script would follow this pattern:
# 1. Get the last saved state
# const state = wnmill.get_state()
# 2. Get the actual state from the external service
# const newState = ...
# 3. Compare the two states and update the internal state
# wmill.setState(newState)
# 4. Return the new rows
# return range from (state to newState)
return [1, 2, 3]
+56 -114
View File
@@ -1,40 +1,12 @@
import type { Script } from "./gen"
export const PYTHON_INIT_CODE = `import os
import wmill
import PYTHON_INIT_CODE from '$lib/init_scripts/python_init_code.py?raw'
import PYTHON_INIT_CODE_CLEAR from '$lib/init_scripts/python_init_code_clear.py?raw'
import PYTHON_INIT_CODE_TRIGGER from '$lib/init_scripts/python_init_code_trigger.py?raw'
import PYTHON_FAILURE_MODULE_CODE from '$lib/init_scripts/python_failure_module.py?raw'
# You can import any package from PyPI, even if the assistant complains
# Ctrl+S to format the code. Autocompletion available.
export { PYTHON_INIT_CODE, PYTHON_INIT_CODE_CLEAR, PYTHON_INIT_CODE_TRIGGER, PYTHON_FAILURE_MODULE_CODE }
def main(no_default: str,
name = "Nicolas Bourbaki",
age = 42,
obj: dict = {"even": "dicts"},
l: list = ["or", "lists!"],
file_: bytes = bytes(0)):
print(f"Hello World and a warm welcome especially to {name}")
print("and its acolytes..", age, obj, l, len(file_))
# retrieve variables, resources, states using the wmill client
try:
secret = wmill.get_variable("f/examples/secret")
except:
secret = "No secret yet at f/examples/secret !"
print(f"The variable at \`f/examples/secret\`: {secret}")
# Get last state of this script execution by the same trigger/user
last_state = wmill.get_state()
new_state = {"foo": 42} if last_state is None else last_state
new_state["foo"] += 1
wmill.set_state(new_state)
# fetch context variables
user = os.environ.get("WM_USERNAME")
# return value is converted to JSON
return {"splitted": name.split(), "user": user, "state": new_state}
`
export const DENO_INIT_CODE = `// Ctrl+. to cache dependencies on imports hover, Ctrl+S to format.
// import { toWords } from "npm:number-to-words@1"
@@ -105,21 +77,6 @@ export async function main(message: string, name: string) {
}
`
export const PYTHON_INIT_CODE_CLEAR = `#import wmill
def main(x: str):
return x
`
export const PYTHON_FAILURE_MODULE_CODE = `import os
# flow is considered recovered and a success unless an exception is raised
def main(message: str, name: str):
flow_id = os.environ.get("WM_FLOW_JOB_ID")
print("message", message)
print("name", name)
return message, flow_id
`
export const POSTGRES_INIT_CODE = `import {
pgSql,
@@ -184,22 +141,6 @@ export async function main() {
}
`
export const PYTHON_INIT_CODE_TRIGGER = `import wmill
def main():
# A common trigger script would follow this pattern:
# 1. Get the last saved state
# const state = wnmill.get_state()
# 2. Get the actual state from the external service
# const newState = ...
# 3. Compare the two states and update the internal state
# wmill.setState(newState)
# 4. Return the new rows
# return range from (state to newState)
return [1, 2, 3]
`
export const GO_INIT_CODE_TRIGGER = `package inner
import (
@@ -233,57 +174,58 @@ export async function main(approver?: string) {
const ALL_INITIAL_CODE = [PYTHON_INIT_CODE, PYTHON_INIT_CODE_TRIGGER, DENO_INIT_CODE, POSTGRES_INIT_CODE, DENO_INIT_CODE_TRIGGER, DENO_INIT_CODE_CLEAR, PYTHON_INIT_CODE_CLEAR, DENO_INIT_CODE_APPROVAL, DENO_FAILURE_MODULE_CODE]
export function isInitialCode(content: string): boolean {
for (const code of ALL_INITIAL_CODE) {
if (content === code) {
return true
}
}
return false
for (const code of ALL_INITIAL_CODE) {
if (content === code) {
return true
}
}
return false
}
export function initialCode(language: 'deno' | 'python3' | 'go' | 'bash', kind: Script.kind, subkind: 'pgsql' | 'mysql' | 'flow' | 'script' | undefined): string {
if (language === 'deno') {
if (kind === 'trigger') {
return DENO_INIT_CODE_TRIGGER
} else if (kind === 'script') {
if (subkind === 'flow') {
return DENO_INIT_CODE_CLEAR
}
else if (subkind === 'pgsql') {
return POSTGRES_INIT_CODE
}
else if (subkind === 'mysql') {
return MYSQL_INIT_CODE
} else {
return DENO_INIT_CODE
}
} else if (kind === 'failure') {
return DENO_FAILURE_MODULE_CODE
} else if (kind === 'approval') {
return DENO_INIT_CODE_APPROVAL
}
else {
return DENO_INIT_CODE
}
} else if (language === 'python3') {
if (subkind === 'flow') {
return PYTHON_INIT_CODE_CLEAR
} else if (kind === 'failure') {
return PYTHON_FAILURE_MODULE_CODE
} else if (kind === 'trigger') {
return PYTHON_INIT_CODE_TRIGGER
} else {
return PYTHON_INIT_CODE
}
} else if (language == 'bash') {
return BASH_INIT_CODE
} else {
if (kind === 'failure') {
return GO_FAILURE_MODULE_CODE
} else if (kind === 'trigger') {
return GO_INIT_CODE_TRIGGER
} else {
return GO_INIT_CODE
}
}
if (language === 'deno') {
if (kind === 'trigger') {
return DENO_INIT_CODE_TRIGGER
} else if (kind === 'script') {
if (subkind === 'flow') {
return DENO_INIT_CODE_CLEAR
}
else if (subkind === 'pgsql') {
return POSTGRES_INIT_CODE
}
else if (subkind === 'mysql') {
return MYSQL_INIT_CODE
} else {
return DENO_INIT_CODE
}
} else if (kind === 'failure') {
return DENO_FAILURE_MODULE_CODE
} else if (kind === 'approval') {
return DENO_INIT_CODE_APPROVAL
}
else {
return DENO_INIT_CODE
}
} else if (language === 'python3') {
if (subkind === 'flow') {
return PYTHON_INIT_CODE_CLEAR
} else if (kind === 'failure') {
return PYTHON_FAILURE_MODULE_CODE
} else if (kind === 'trigger') {
return PYTHON_INIT_CODE_TRIGGER
} else {
return PYTHON_INIT_CODE
}
} else if (language == 'bash') {
return BASH_INIT_CODE
} else {
if (kind === 'failure') {
return GO_FAILURE_MODULE_CODE
} else if (kind === 'trigger') {
return GO_INIT_CODE_TRIGGER
} else {
return GO_INIT_CODE
}
}
}