{"$schema": "https://developer.microsoft.com/json-schemas/office-js/custom-functions.schema.json", "functions": [{"id": "add_tax_js_run_local", "name": "add_tax_js_run_local", "description": "Adds tax to an amount.", "parameters": [{"name": "amount", "description": "Amount before tax.", "type": "number", "dimensionality": "scalar"}, {"name": "rate", "description": "Tax rate (e.g. 0.08).", "type": "number", "dimensionality": "scalar"}], "result": {"type": "number", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/generated/add_tax_js_run_local.html"}, {"id": "add_tax_js_run_at_server", "name": "add_tax_js_run_at_server", "description": "Adds tax to an amount.", "parameters": [{"name": "amount", "description": "Amount before tax.", "type": "number", "dimensionality": "scalar"}, {"name": "rate", "description": "Tax rate (e.g. 0.08).", "type": "number", "dimensionality": "scalar"}], "result": {"type": "number", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/generated/add_tax_js_run_at_server.html"}, {"id": "string_join", "name": "string_join", "description": "Join multiple string together with delimiter, empty will be ignored", "parameters": [{"name": "delimiter", "description": "delimiter", "type": "any", "dimensionality": "scalar"}, {"name": "values", "description": "values", "type": "any", "dimensionality": "matrix", "repeating": true}], "result": {"type": "string", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/string_join.html"}, {"id": "string_join_trim", "name": "string_join_trim", "description": "Join multiple string together with delimiter after remove leading and trailing space, empty will be ignored", "parameters": [{"name": "delimiter", "description": "delimiter", "type": "any", "dimensionality": "scalar"}, {"name": "values", "description": "values", "type": "any", "dimensionality": "matrix", "repeating": true}], "result": {"type": "string", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/string_join_trim.html"}, {"id": "Sum", "name": "Sum", "description": "Sum numbers and ranges", "parameters": [{"name": "values", "description": "values", "type": "number", "dimensionality": "matrix", "repeating": true}], "result": {"type": "number", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/Sum.html"}, {"id": "Product", "name": "Product", "description": "Multiply numbers and ranges", "parameters": [{"name": "values", "description": "values", "type": "number", "dimensionality": "matrix", "repeating": true}], "result": {"type": "number", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/Product.html"}, {"id": "ReturnArray", "name": "ReturnArray", "description": "return array sample", "parameters": [{"name": "a", "description": "a", "type": "any", "dimensionality": "scalar"}, {"name": "b", "description": "b", "type": "any", "dimensionality": "scalar"}, {"name": "c", "description": "c", "type": "any", "dimensionality": "scalar"}], "result": {"type": "number", "dimensionality": "matrix"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/ReturnArray.html"}, {"id": "PredictHeight", "name": "PredictHeight", "description": "Predict Ball Height when it is in air", "parameters": [{"name": "times", "description": "times", "type": "number", "dimensionality": "matrix"}, {"name": "heights", "description": "heights", "type": "number", "dimensionality": "matrix"}, {"name": "query_times", "description": "query_times", "type": "number", "dimensionality": "matrix"}], "result": {"type": "number", "dimensionality": "matrix"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/PredictHeight.html"}, {"id": "MANIFESTURL", "name": "zzManifestUrl", "description": "Configured hosted manifest URL; not the original installation location.", "parameters": [], "result": {"type": "string", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/MANIFESTURL.html"}, {"id": "SERVERURL", "name": "zzServerUrl", "description": "Configured Jupyter API base URL.", "parameters": [], "result": {"type": "string", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/SERVERURL.html"}, {"id": "ADDINVERSION", "name": "zzAddinVersion", "description": "JupyterForExcel package version used to generate this add-in.", "parameters": [], "result": {"type": "string", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/ADDINVERSION.html"}, {"id": "ASSETVERSION", "name": "zzAssetVersion", "description": "Generated asset version loaded by this add-in.", "parameters": [], "result": {"type": "string", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/ASSETVERSION.html"}, {"id": "RTTIMER", "name": "RtTimer", "description": "Create a reusable schedule: local Excel start date, frequency in seconds, duration in minutes (1900 date system).", "parameters": [{"name": "start_time", "type": "number", "description": "start time"}, {"name": "frequency_in_seconds", "type": "number", "description": "frequency in seconds"}, {"name": "duration_in_minutes", "type": "number", "description": "duration in minutes"}], "result": {"type": "string", "dimensionality": "scalar"}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTTIMER.html"}, {"id": "RTNOW", "name": "RtNow", "description": "Current local Excel date/time, refreshed on a schedule (1900 date system).", "parameters": [{"name": "timer", "type": "any", "description": "Refresh seconds (at least 0.001) or a value returned by RtTimer."}], "result": {"type": "number", "dimensionality": "scalar"}, "options": {"stream": true, "requiresStreamAddress": true}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTNOW.html"}, {"id": "RTRAND", "name": "RtRand", "description": "Independent random decimal from 0 inclusive to 1 exclusive on each refresh.", "parameters": [{"name": "timer", "type": "any", "description": "Refresh seconds (at least 0.001) or a value returned by RtTimer."}], "result": {"type": "number", "dimensionality": "scalar"}, "options": {"stream": true, "requiresStreamAddress": true}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTRAND.html"}, {"id": "RTRANDARRAY", "name": "RtRandArray", "description": "Refresh a random spill array; defaults: 1 row, 1 column, min 0, max 1, decimals. Limit 100,000 elements.", "parameters": [{"name": "timer", "type": "any", "description": "Refresh seconds (at least 0.001) or a value returned by RtTimer."}, {"name": "rows", "type": "number", "description": "rows", "optional": true}, {"name": "columns", "type": "number", "description": "columns", "optional": true}, {"name": "min", "type": "number", "description": "min", "optional": true}, {"name": "max", "type": "number", "description": "max", "optional": true}, {"name": "whole_number", "type": "boolean", "description": "whole number", "optional": true}], "result": {"type": "number", "dimensionality": "matrix"}, "options": {"stream": true, "requiresStreamAddress": true}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTRANDARRAY.html"}, {"id": "RTRANDBETWEEN", "name": "RtRandBetween", "description": "Refresh a random integer between the bounds, inclusive.", "parameters": [{"name": "timer", "type": "any", "description": "Refresh seconds (at least 0.001) or a value returned by RtTimer."}, {"name": "bottom", "type": "number", "description": "bottom"}, {"name": "top", "type": "number", "description": "top"}], "result": {"type": "number", "dimensionality": "scalar"}, "options": {"stream": true, "requiresStreamAddress": true}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTRANDBETWEEN.html"}, {"id": "RTCOUNT", "name": "RtCount", "description": "Start at zero and increment for each delivered refresh; missed ticks are not replayed.", "parameters": [{"name": "timer", "type": "any", "description": "Refresh seconds (at least 0.001) or a value returned by RtTimer."}], "result": {"type": "number", "dimensionality": "scalar"}, "options": {"stream": true, "requiresStreamAddress": true}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTCOUNT.html"}, {"id": "RTELAPSED", "name": "RtElapsed", "description": "Elapsed seconds since activation or the scheduled start.", "parameters": [{"name": "timer", "type": "any", "description": "Refresh seconds (at least 0.001) or a value returned by RtTimer."}], "result": {"type": "number", "dimensionality": "scalar"}, "options": {"stream": true, "requiresStreamAddress": true}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTELAPSED.html"}, {"id": "RTCOUNTDOWN", "name": "RtCountdown", "description": "Seconds remaining, ending at zero. Numeric timers require duration_in_seconds; RtTimer supplies its own end.", "parameters": [{"name": "timer", "type": "any", "description": "Refresh seconds (at least 0.001) or a value returned by RtTimer."}, {"name": "duration_in_seconds", "type": "number", "description": "duration in seconds", "optional": true}], "result": {"type": "number", "dimensionality": "scalar"}, "options": {"stream": true, "requiresStreamAddress": true}, "helpUrl": "https://www.jupyterexcel.com/excel-addin/jupyterhub/help/functions/RTCOUNTDOWN.html"}]}