From 2ee00b3c7b0f7ba9a5997ec4474949500ff2c67b Mon Sep 17 00:00:00 2001 From: Diego Imbert <70353967+diegoimbert@users.noreply.github.com> Date: Thu, 11 Dec 2025 14:26:30 +0100 Subject: [PATCH] fix: S3 SDK nits + Presigned S3 Public URL function (#7342) * export S3Object + URI / Record in TS SDK * stash getS3SignedPublicUrls * getPresignedS3PublicUrls in TS client * update python client for get_presigned_s3_public_urls --- python-client/docs/search.js | 2 +- python-client/docs/wmill.html | 6 +- python-client/docs/wmill/client.html | 8098 ++++++++++++++--------- python-client/docs/wmill/s3_reader.html | 31 +- python-client/docs/wmill/s3_types.html | 6 +- python-client/wmill/wmill/client.py | 125 + typescript-client/build.jsr.sh | 4 +- typescript-client/build.sh | 4 +- typescript-client/client.d.ts | 42 + typescript-client/client.ts | 65 +- 10 files changed, 5104 insertions(+), 3279 deletions(-) diff --git a/python-client/docs/search.js b/python-client/docs/search.js index 960f5fe457..40e313938c 100644 --- a/python-client/docs/search.js +++ b/python-client/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o

\n"}, "wmill.client": {"fullname": "wmill.client", "modulename": "wmill.client", "kind": "module", "doc": "

\n"}, "wmill.client.logger": {"fullname": "wmill.client.logger", "modulename": "wmill.client", "qualname": "logger", "kind": "variable", "doc": "

\n", "default_value": "<Logger windmill_client (WARNING)>"}, "wmill.client.JobStatus": {"fullname": "wmill.client.JobStatus", "modulename": "wmill.client", "qualname": "JobStatus", "kind": "variable", "doc": "

\n", "default_value": "typing.Literal['RUNNING', 'WAITING', 'COMPLETED']"}, "wmill.client.Windmill": {"fullname": "wmill.client.Windmill", "modulename": "wmill.client", "qualname": "Windmill", "kind": "class", "doc": "

\n"}, "wmill.client.Windmill.__init__": {"fullname": "wmill.client.Windmill.__init__", "modulename": "wmill.client", "qualname": "Windmill.__init__", "kind": "function", "doc": "

\n", "signature": "(base_url=None, token=None, workspace=None, verify=True)"}, "wmill.client.Windmill.base_url": {"fullname": "wmill.client.Windmill.base_url", "modulename": "wmill.client", "qualname": "Windmill.base_url", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.token": {"fullname": "wmill.client.Windmill.token", "modulename": "wmill.client", "qualname": "Windmill.token", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.headers": {"fullname": "wmill.client.Windmill.headers", "modulename": "wmill.client", "qualname": "Windmill.headers", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.verify": {"fullname": "wmill.client.Windmill.verify", "modulename": "wmill.client", "qualname": "Windmill.verify", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.client": {"fullname": "wmill.client.Windmill.client", "modulename": "wmill.client", "qualname": "Windmill.client", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.workspace": {"fullname": "wmill.client.Windmill.workspace", "modulename": "wmill.client", "qualname": "Windmill.workspace", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.path": {"fullname": "wmill.client.Windmill.path", "modulename": "wmill.client", "qualname": "Windmill.path", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.mocked_api": {"fullname": "wmill.client.Windmill.mocked_api", "modulename": "wmill.client", "qualname": "Windmill.mocked_api", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.get_mocked_api": {"fullname": "wmill.client.Windmill.get_mocked_api", "modulename": "wmill.client", "qualname": "Windmill.get_mocked_api", "kind": "function", "doc": "

\n", "signature": "(self) -> Optional[dict]:", "funcdef": "def"}, "wmill.client.Windmill.get_client": {"fullname": "wmill.client.Windmill.get_client", "modulename": "wmill.client", "qualname": "Windmill.get_client", "kind": "function", "doc": "

\n", "signature": "(self) -> httpx.Client:", "funcdef": "def"}, "wmill.client.Windmill.get": {"fullname": "wmill.client.Windmill.get", "modulename": "wmill.client", "qualname": "Windmill.get", "kind": "function", "doc": "

\n", "signature": "(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:", "funcdef": "def"}, "wmill.client.Windmill.post": {"fullname": "wmill.client.Windmill.post", "modulename": "wmill.client", "qualname": "Windmill.post", "kind": "function", "doc": "

\n", "signature": "(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:", "funcdef": "def"}, "wmill.client.Windmill.create_token": {"fullname": "wmill.client.Windmill.create_token", "modulename": "wmill.client", "qualname": "Windmill.create_token", "kind": "function", "doc": "

\n", "signature": "(self, duration=datetime.timedelta(days=1)) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script_async": {"fullname": "wmill.client.Windmill.run_script_async", "modulename": "wmill.client", "qualname": "Windmill.run_script_async", "kind": "function", "doc": "

Create a script job and return its job id.

\n\n

Deprecated since version Use run_script_by_path_async or run_script_by_hash_async instead..

\n", "signature": "(\tself,\tpath: str = None,\thash_: str = None,\targs: dict = None,\tscheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_path_async": {"fullname": "wmill.client.Windmill.run_script_by_path_async", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_path_async", "kind": "function", "doc": "

Create a script job by path and return its job id.

\n", "signature": "(self, path: str, args: dict = None, scheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_hash_async": {"fullname": "wmill.client.Windmill.run_script_by_hash_async", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_hash_async", "kind": "function", "doc": "

Create a script job by hash and return its job id.

\n", "signature": "(\tself,\thash_: str,\targs: dict = None,\tscheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_flow_async": {"fullname": "wmill.client.Windmill.run_flow_async", "modulename": "wmill.client", "qualname": "Windmill.run_flow_async", "kind": "function", "doc": "

Create a flow job and return its job id.

\n", "signature": "(\tself,\tpath: str,\targs: dict = None,\tscheduled_in_secs: int = None,\tdo_not_track_in_parent: bool = True) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script": {"fullname": "wmill.client.Windmill.run_script", "modulename": "wmill.client", "qualname": "Windmill.run_script", "kind": "function", "doc": "

Run script synchronously and return its result.

\n\n

Deprecated since version Use run_script_by_path or run_script_by_hash instead..

\n", "signature": "(\tself,\tpath: str = None,\thash_: str = None,\targs: dict = None,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_path": {"fullname": "wmill.client.Windmill.run_script_by_path", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_path", "kind": "function", "doc": "

Run script by path synchronously and return its result.

\n", "signature": "(\tself,\tpath: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_hash": {"fullname": "wmill.client.Windmill.run_script_by_hash", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_hash", "kind": "function", "doc": "

Run script by hash synchronously and return its result.

\n", "signature": "(\tself,\thash_: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.wait_job": {"fullname": "wmill.client.Windmill.wait_job", "modulename": "wmill.client", "qualname": "Windmill.wait_job", "kind": "function", "doc": "

\n", "signature": "(\tself,\tjob_id,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False):", "funcdef": "def"}, "wmill.client.Windmill.cancel_running": {"fullname": "wmill.client.Windmill.cancel_running", "modulename": "wmill.client", "qualname": "Windmill.cancel_running", "kind": "function", "doc": "

Cancel currently running executions of the same script.

\n", "signature": "(self) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.get_job": {"fullname": "wmill.client.Windmill.get_job", "modulename": "wmill.client", "qualname": "Windmill.get_job", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.get_root_job_id": {"fullname": "wmill.client.Windmill.get_root_job_id", "modulename": "wmill.client", "qualname": "Windmill.get_root_job_id", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str | None = None) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.get_id_token": {"fullname": "wmill.client.Windmill.get_id_token", "modulename": "wmill.client", "qualname": "Windmill.get_id_token", "kind": "function", "doc": "

\n", "signature": "(self, audience: str) -> str:", "funcdef": "def"}, "wmill.client.Windmill.get_job_status": {"fullname": "wmill.client.Windmill.get_job_status", "modulename": "wmill.client", "qualname": "Windmill.get_job_status", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str) -> Literal['RUNNING', 'WAITING', 'COMPLETED']:", "funcdef": "def"}, "wmill.client.Windmill.get_result": {"fullname": "wmill.client.Windmill.get_result", "modulename": "wmill.client", "qualname": "Windmill.get_result", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str, assert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.get_variable": {"fullname": "wmill.client.Windmill.get_variable", "modulename": "wmill.client", "qualname": "Windmill.get_variable", "kind": "function", "doc": "

\n", "signature": "(self, path: str) -> str:", "funcdef": "def"}, "wmill.client.Windmill.set_variable": {"fullname": "wmill.client.Windmill.set_variable", "modulename": "wmill.client", "qualname": "Windmill.set_variable", "kind": "function", "doc": "

\n", "signature": "(self, path: str, value: str, is_secret: bool = False) -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_resource": {"fullname": "wmill.client.Windmill.get_resource", "modulename": "wmill.client", "qualname": "Windmill.get_resource", "kind": "function", "doc": "

\n", "signature": "(self, path: str, none_if_undefined: bool = False) -> dict | None:", "funcdef": "def"}, "wmill.client.Windmill.set_resource": {"fullname": "wmill.client.Windmill.set_resource", "modulename": "wmill.client", "qualname": "Windmill.set_resource", "kind": "function", "doc": "

\n", "signature": "(self, value: Any, path: str, resource_type: str):", "funcdef": "def"}, "wmill.client.Windmill.set_state": {"fullname": "wmill.client.Windmill.set_state", "modulename": "wmill.client", "qualname": "Windmill.set_state", "kind": "function", "doc": "

\n", "signature": "(self, value: Any):", "funcdef": "def"}, "wmill.client.Windmill.set_progress": {"fullname": "wmill.client.Windmill.set_progress", "modulename": "wmill.client", "qualname": "Windmill.set_progress", "kind": "function", "doc": "

\n", "signature": "(self, value: int, job_id: Optional[str] = None):", "funcdef": "def"}, "wmill.client.Windmill.get_progress": {"fullname": "wmill.client.Windmill.get_progress", "modulename": "wmill.client", "qualname": "Windmill.get_progress", "kind": "function", "doc": "

\n", "signature": "(self, job_id: Optional[str] = None) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.set_flow_user_state": {"fullname": "wmill.client.Windmill.set_flow_user_state", "modulename": "wmill.client", "qualname": "Windmill.set_flow_user_state", "kind": "function", "doc": "

Set the user state of a flow at a given key

\n", "signature": "(self, key: str, value: Any) -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_flow_user_state": {"fullname": "wmill.client.Windmill.get_flow_user_state", "modulename": "wmill.client", "qualname": "Windmill.get_flow_user_state", "kind": "function", "doc": "

Get the user state of a flow at a given key

\n", "signature": "(self, key: str) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.version": {"fullname": "wmill.client.Windmill.version", "modulename": "wmill.client", "qualname": "Windmill.version", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.get_duckdb_connection_settings": {"fullname": "wmill.client.Windmill.get_duckdb_connection_settings", "modulename": "wmill.client", "qualname": "Windmill.get_duckdb_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from DuckDB

\n", "signature": "(\tself,\ts3_resource_path: str = '') -> wmill.s3_types.DuckDbConnectionSettings | None:", "funcdef": "def"}, "wmill.client.Windmill.get_polars_connection_settings": {"fullname": "wmill.client.Windmill.get_polars_connection_settings", "modulename": "wmill.client", "qualname": "Windmill.get_polars_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from Polars

\n", "signature": "(\tself,\ts3_resource_path: str = '') -> wmill.s3_types.PolarsConnectionSettings:", "funcdef": "def"}, "wmill.client.Windmill.get_boto3_connection_settings": {"fullname": "wmill.client.Windmill.get_boto3_connection_settings", "modulename": "wmill.client", "qualname": "Windmill.get_boto3_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection using boto3

\n", "signature": "(\tself,\ts3_resource_path: str = '') -> wmill.s3_types.Boto3ConnectionSettings:", "funcdef": "def"}, "wmill.client.Windmill.load_s3_file": {"fullname": "wmill.client.Windmill.load_s3_file", "modulename": "wmill.client", "qualname": "Windmill.load_s3_file", "kind": "function", "doc": "

Load a file from the workspace s3 bucket and returns its content as bytes.

\n\n

'''python\nfrom wmill import S3Object

\n\n

s3_obj = S3Object(s3=\"/path/to/my_file.txt\")\nmy_obj_content = client.load_s3_file(s3_obj)\nfile_content = my_obj_content.decode(\"utf-8\")\n'''

\n", "signature": "(\tself,\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None) -> bytes:", "funcdef": "def"}, "wmill.client.Windmill.load_s3_file_reader": {"fullname": "wmill.client.Windmill.load_s3_file_reader", "modulename": "wmill.client", "qualname": "Windmill.load_s3_file_reader", "kind": "function", "doc": "

Load a file from the workspace s3 bucket and returns the bytes stream.

\n\n

'''python\nfrom wmill import S3Object

\n\n

s3_obj = S3Object(s3=\"/path/to/my_file.txt\")\nwith wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader:\n print(file_reader.read())\n'''

\n", "signature": "(\tself,\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None) -> _io.BufferedReader:", "funcdef": "def"}, "wmill.client.Windmill.write_s3_file": {"fullname": "wmill.client.Windmill.write_s3_file", "modulename": "wmill.client", "qualname": "Windmill.write_s3_file", "kind": "function", "doc": "

Write a file to the workspace S3 bucket

\n\n

'''python\nfrom wmill import S3Object

\n\n

s3_obj = S3Object(s3=\"/path/to/my_file.txt\")

\n\n

for an in memory bytes array:

\n\n

file_content = b'Hello Windmill!'\nclient.write_s3_file(s3_obj, file_content)

\n\n

for a file:

\n\n

with open(\"my_file.txt\", \"rb\") as my_file:\n client.write_s3_file(s3_obj, my_file)\n'''

\n", "signature": "(\tself,\ts3object: wmill.s3_types.S3Object | str | None,\tfile_content: _io.BufferedReader | bytes,\ts3_resource_path: str | None,\tcontent_type: str | None = None,\tcontent_disposition: str | None = None) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.Windmill.sign_s3_objects": {"fullname": "wmill.client.Windmill.sign_s3_objects", "modulename": "wmill.client", "qualname": "Windmill.sign_s3_objects", "kind": "function", "doc": "

\n", "signature": "(\tself,\ts3_objects: list[wmill.s3_types.S3Object | str]) -> list[wmill.s3_types.S3Object]:", "funcdef": "def"}, "wmill.client.Windmill.sign_s3_object": {"fullname": "wmill.client.Windmill.sign_s3_object", "modulename": "wmill.client", "qualname": "Windmill.sign_s3_object", "kind": "function", "doc": "

\n", "signature": "(\tself,\ts3_object: wmill.s3_types.S3Object | str) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.Windmill.whoami": {"fullname": "wmill.client.Windmill.whoami", "modulename": "wmill.client", "qualname": "Windmill.whoami", "kind": "function", "doc": "

\n", "signature": "(self) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.user": {"fullname": "wmill.client.Windmill.user", "modulename": "wmill.client", "qualname": "Windmill.user", "kind": "variable", "doc": "

\n", "annotation": ": dict"}, "wmill.client.Windmill.state_path": {"fullname": "wmill.client.Windmill.state_path", "modulename": "wmill.client", "qualname": "Windmill.state_path", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.client.Windmill.state": {"fullname": "wmill.client.Windmill.state", "modulename": "wmill.client", "qualname": "Windmill.state", "kind": "variable", "doc": "

\n", "annotation": ": Any"}, "wmill.client.Windmill.set_shared_state_pickle": {"fullname": "wmill.client.Windmill.set_shared_state_pickle", "modulename": "wmill.client", "qualname": "Windmill.set_shared_state_pickle", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path: str = 'state.pickle') -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_shared_state_pickle": {"fullname": "wmill.client.Windmill.get_shared_state_pickle", "modulename": "wmill.client", "qualname": "Windmill.get_shared_state_pickle", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path: str = 'state.pickle') -> Any:", "funcdef": "def"}, "wmill.client.Windmill.set_shared_state": {"fullname": "wmill.client.Windmill.set_shared_state", "modulename": "wmill.client", "qualname": "Windmill.set_shared_state", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path: str = 'state.json') -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_shared_state": {"fullname": "wmill.client.Windmill.get_shared_state", "modulename": "wmill.client", "qualname": "Windmill.get_shared_state", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path: str = 'state.json') -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_resume_urls": {"fullname": "wmill.client.Windmill.get_resume_urls", "modulename": "wmill.client", "qualname": "Windmill.get_resume_urls", "kind": "function", "doc": "

\n", "signature": "(self, approver: str = None) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.request_interactive_slack_approval": {"fullname": "wmill.client.Windmill.request_interactive_slack_approval", "modulename": "wmill.client", "qualname": "Windmill.request_interactive_slack_approval", "kind": "function", "doc": "

Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields.

\n\n

[Enterprise Edition Only] To include form fields in the Slack approval request, use the \"Advanced -> Suspend -> Form\" functionality.\nLearn more at: https://www.windmill.dev/docs/flows/flow_approval#form

\n\n
Parameters
\n\n
    \n
  • slack_resource_path: The path to the Slack resource in Windmill.
  • \n
  • channel_id: The Slack channel ID where the approval request will be sent.
  • \n
  • message: Optional custom message to include in the Slack approval request.
  • \n
  • approver: Optional user ID or name of the approver for the request.
  • \n
  • default_args_json: Optional dictionary defining or overriding the default arguments for form fields.
  • \n
  • dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields.
  • \n
\n\n
Raises
\n\n
    \n
  • Exception: If the function is not called within a flow or flow preview.
  • \n
  • Exception: If the required flow job or flow step environment variables are not set.
  • \n
\n\n
Returns
\n\n
\n

None

\n
\n\n

Usage Example:

\n\n
\n
\n
\n

client.request_interactive_slack_approval(\n ... slack_resource_path=\"/u/alex/my_slack_resource\",\n ... channel_id=\"admins-slack-channel\",\n ... message=\"Please approve this request\",\n ... approver=\"approver123\",\n ... default_args_json={\"key1\": \"value1\", \"key2\": 42},\n ... dynamic_enums_json={\"foo\": [\"choice1\", \"choice2\"], \"bar\": [\"optionA\", \"optionB\"]},\n ... )

\n
\n
\n
\n\n

Notes:

\n\n
    \n
  • This function must be executed within a Windmill flow or flow preview.
  • \n
  • The function checks for required environment variables (WM_FLOW_JOB_ID, WM_FLOW_STEP_ID) to ensure it is run in the appropriate context.
  • \n
\n", "signature": "(\tself,\tslack_resource_path: str,\tchannel_id: str,\tmessage: str = None,\tapprover: str = None,\tdefault_args_json: dict = None,\tdynamic_enums_json: dict = None) -> None:", "funcdef": "def"}, "wmill.client.Windmill.username_to_email": {"fullname": "wmill.client.Windmill.username_to_email", "modulename": "wmill.client", "qualname": "Windmill.username_to_email", "kind": "function", "doc": "

Get email from workspace username\nThis method is particularly useful for apps that require the email address of the viewer.\nIndeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.

\n", "signature": "(self, username: str) -> str:", "funcdef": "def"}, "wmill.client.Windmill.send_teams_message": {"fullname": "wmill.client.Windmill.send_teams_message", "modulename": "wmill.client", "qualname": "Windmill.send_teams_message", "kind": "function", "doc": "

Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message

\n", "signature": "(\tself,\tconversation_id: str,\ttext: str,\tsuccess: bool = True,\tcard_block: dict = None):", "funcdef": "def"}, "wmill.client.init_global_client": {"fullname": "wmill.client.init_global_client", "modulename": "wmill.client", "qualname": "init_global_client", "kind": "function", "doc": "

\n", "signature": "(f):", "funcdef": "def"}, "wmill.client.deprecate": {"fullname": "wmill.client.deprecate", "modulename": "wmill.client", "qualname": "deprecate", "kind": "function", "doc": "

\n", "signature": "(in_favor_of: str):", "funcdef": "def"}, "wmill.client.get_workspace": {"fullname": "wmill.client.get_workspace", "modulename": "wmill.client", "qualname": "get_workspace", "kind": "function", "doc": "

\n", "signature": "() -> str:", "funcdef": "def"}, "wmill.client.get_root_job_id": {"fullname": "wmill.client.get_root_job_id", "modulename": "wmill.client", "qualname": "get_root_job_id", "kind": "function", "doc": "

\n", "signature": "(job_id: str | None = None) -> str:", "funcdef": "def"}, "wmill.client.get_version": {"fullname": "wmill.client.get_version", "modulename": "wmill.client", "qualname": "get_version", "kind": "function", "doc": "

\n", "signature": "() -> str:", "funcdef": "def"}, "wmill.client.run_script_async": {"fullname": "wmill.client.run_script_async", "modulename": "wmill.client", "qualname": "run_script_async", "kind": "function", "doc": "

\n", "signature": "(\thash_or_path: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.run_flow_async": {"fullname": "wmill.client.run_flow_async", "modulename": "wmill.client", "qualname": "run_flow_async", "kind": "function", "doc": "

\n", "signature": "(\tpath: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: int = None,\tdo_not_track_in_parent: bool = True) -> str:", "funcdef": "def"}, "wmill.client.run_script_sync": {"fullname": "wmill.client.run_script_sync", "modulename": "wmill.client", "qualname": "run_script_sync", "kind": "function", "doc": "

\n", "signature": "(\thash: str,\targs: Dict[str, Any] = None,\tverbose: bool = False,\tassert_result_is_not_none: bool = True,\tcleanup: bool = True,\ttimeout: datetime.timedelta = None) -> Any:", "funcdef": "def"}, "wmill.client.run_script_by_path_async": {"fullname": "wmill.client.run_script_by_path_async", "modulename": "wmill.client", "qualname": "run_script_by_path_async", "kind": "function", "doc": "

\n", "signature": "(\tpath: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: Optional[int] = None) -> str:", "funcdef": "def"}, "wmill.client.run_script_by_hash_async": {"fullname": "wmill.client.run_script_by_hash_async", "modulename": "wmill.client", "qualname": "run_script_by_hash_async", "kind": "function", "doc": "

\n", "signature": "(\thash_: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: Optional[int] = None) -> str:", "funcdef": "def"}, "wmill.client.run_script_by_path_sync": {"fullname": "wmill.client.run_script_by_path_sync", "modulename": "wmill.client", "qualname": "run_script_by_path_sync", "kind": "function", "doc": "

\n", "signature": "(\tpath: str,\targs: Dict[str, Any] = None,\tverbose: bool = False,\tassert_result_is_not_none: bool = True,\tcleanup: bool = True,\ttimeout: datetime.timedelta = None) -> Any:", "funcdef": "def"}, "wmill.client.get_id_token": {"fullname": "wmill.client.get_id_token", "modulename": "wmill.client", "qualname": "get_id_token", "kind": "function", "doc": "

Get a JWT token for the given audience for OIDC purposes to login into third parties like AWS, Vault, GCP, etc.

\n", "signature": "(audience: str) -> str:", "funcdef": "def"}, "wmill.client.get_job_status": {"fullname": "wmill.client.get_job_status", "modulename": "wmill.client", "qualname": "get_job_status", "kind": "function", "doc": "

\n", "signature": "(job_id: str) -> Literal['RUNNING', 'WAITING', 'COMPLETED']:", "funcdef": "def"}, "wmill.client.get_result": {"fullname": "wmill.client.get_result", "modulename": "wmill.client", "qualname": "get_result", "kind": "function", "doc": "

\n", "signature": "(job_id: str, assert_result_is_not_none=True) -> Dict[str, Any]:", "funcdef": "def"}, "wmill.client.duckdb_connection_settings": {"fullname": "wmill.client.duckdb_connection_settings", "modulename": "wmill.client", "qualname": "duckdb_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from DuckDB

\n", "signature": "(s3_resource_path: str = '') -> wmill.s3_types.DuckDbConnectionSettings:", "funcdef": "def"}, "wmill.client.polars_connection_settings": {"fullname": "wmill.client.polars_connection_settings", "modulename": "wmill.client", "qualname": "polars_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from Polars

\n", "signature": "(s3_resource_path: str = '') -> wmill.s3_types.PolarsConnectionSettings:", "funcdef": "def"}, "wmill.client.boto3_connection_settings": {"fullname": "wmill.client.boto3_connection_settings", "modulename": "wmill.client", "qualname": "boto3_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection using boto3

\n", "signature": "(s3_resource_path: str = '') -> wmill.s3_types.Boto3ConnectionSettings:", "funcdef": "def"}, "wmill.client.load_s3_file": {"fullname": "wmill.client.load_s3_file", "modulename": "wmill.client", "qualname": "load_s3_file", "kind": "function", "doc": "

Load the entire content of a file stored in S3 as bytes

\n", "signature": "(\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None = None) -> bytes:", "funcdef": "def"}, "wmill.client.load_s3_file_reader": {"fullname": "wmill.client.load_s3_file_reader", "modulename": "wmill.client", "qualname": "load_s3_file_reader", "kind": "function", "doc": "

Load the content of a file stored in S3

\n", "signature": "(\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None = None) -> _io.BufferedReader:", "funcdef": "def"}, "wmill.client.write_s3_file": {"fullname": "wmill.client.write_s3_file", "modulename": "wmill.client", "qualname": "write_s3_file", "kind": "function", "doc": "

Upload a file to S3

\n\n

Content type will be automatically guessed from path extension if left empty

\n\n

See MDN for content_disposition: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition\nand content_type: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type

\n", "signature": "(\ts3object: wmill.s3_types.S3Object | str | None,\tfile_content: _io.BufferedReader | bytes,\ts3_resource_path: str | None = None,\tcontent_type: str | None = None,\tcontent_disposition: str | None = None) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.sign_s3_objects": {"fullname": "wmill.client.sign_s3_objects", "modulename": "wmill.client", "qualname": "sign_s3_objects", "kind": "function", "doc": "

Sign S3 objects to be used by anonymous users in public apps\nReturns a list of signed s3 tokens

\n", "signature": "(\ts3_objects: list[wmill.s3_types.S3Object | str]) -> list[wmill.s3_types.S3Object]:", "funcdef": "def"}, "wmill.client.sign_s3_object": {"fullname": "wmill.client.sign_s3_object", "modulename": "wmill.client", "qualname": "sign_s3_object", "kind": "function", "doc": "

Sign S3 object to be used by anonymous users in public apps\nReturns a signed s3 object

\n", "signature": "(s3_object: wmill.s3_types.S3Object | str) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.whoami": {"fullname": "wmill.client.whoami", "modulename": "wmill.client", "qualname": "whoami", "kind": "function", "doc": "

Returns the current user

\n", "signature": "() -> dict:", "funcdef": "def"}, "wmill.client.get_state": {"fullname": "wmill.client.get_state", "modulename": "wmill.client", "qualname": "get_state", "kind": "function", "doc": "

Get the state

\n", "signature": "() -> Any:", "funcdef": "def"}, "wmill.client.get_resource": {"fullname": "wmill.client.get_resource", "modulename": "wmill.client", "qualname": "get_resource", "kind": "function", "doc": "

Get resource from Windmill

\n", "signature": "(path: str, none_if_undefined: bool = False) -> dict | None:", "funcdef": "def"}, "wmill.client.set_resource": {"fullname": "wmill.client.set_resource", "modulename": "wmill.client", "qualname": "set_resource", "kind": "function", "doc": "

Set the resource at a given path as a string, creating it if it does not exist

\n", "signature": "(path: str, value: Any, resource_type: str = 'any') -> None:", "funcdef": "def"}, "wmill.client.set_state": {"fullname": "wmill.client.set_state", "modulename": "wmill.client", "qualname": "set_state", "kind": "function", "doc": "

Set the state

\n", "signature": "(value: Any) -> None:", "funcdef": "def"}, "wmill.client.set_progress": {"fullname": "wmill.client.set_progress", "modulename": "wmill.client", "qualname": "set_progress", "kind": "function", "doc": "

Set the progress

\n", "signature": "(value: int, job_id: Optional[str] = None) -> None:", "funcdef": "def"}, "wmill.client.get_progress": {"fullname": "wmill.client.get_progress", "modulename": "wmill.client", "qualname": "get_progress", "kind": "function", "doc": "

Get the progress

\n", "signature": "(job_id: Optional[str] = None) -> Any:", "funcdef": "def"}, "wmill.client.set_shared_state_pickle": {"fullname": "wmill.client.set_shared_state_pickle", "modulename": "wmill.client", "qualname": "set_shared_state_pickle", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path='state.pickle') -> None:", "funcdef": "def"}, "wmill.client.get_shared_state_pickle": {"fullname": "wmill.client.get_shared_state_pickle", "modulename": "wmill.client", "qualname": "get_shared_state_pickle", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path='state.pickle') -> Any:", "funcdef": "def"}, "wmill.client.set_shared_state": {"fullname": "wmill.client.set_shared_state", "modulename": "wmill.client", "qualname": "set_shared_state", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path='state.json') -> None:", "funcdef": "def"}, "wmill.client.get_shared_state": {"fullname": "wmill.client.get_shared_state", "modulename": "wmill.client", "qualname": "get_shared_state", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path='state.json') -> None:", "funcdef": "def"}, "wmill.client.get_variable": {"fullname": "wmill.client.get_variable", "modulename": "wmill.client", "qualname": "get_variable", "kind": "function", "doc": "

Returns the variable at a given path as a string

\n", "signature": "(path: str) -> str:", "funcdef": "def"}, "wmill.client.set_variable": {"fullname": "wmill.client.set_variable", "modulename": "wmill.client", "qualname": "set_variable", "kind": "function", "doc": "

Set the variable at a given path as a string, creating it if it does not exist

\n", "signature": "(path: str, value: str, is_secret: bool = False) -> None:", "funcdef": "def"}, "wmill.client.get_flow_user_state": {"fullname": "wmill.client.get_flow_user_state", "modulename": "wmill.client", "qualname": "get_flow_user_state", "kind": "function", "doc": "

Get the user state of a flow at a given key

\n", "signature": "(key: str) -> Any:", "funcdef": "def"}, "wmill.client.set_flow_user_state": {"fullname": "wmill.client.set_flow_user_state", "modulename": "wmill.client", "qualname": "set_flow_user_state", "kind": "function", "doc": "

Set the user state of a flow at a given key

\n", "signature": "(key: str, value: Any) -> None:", "funcdef": "def"}, "wmill.client.get_state_path": {"fullname": "wmill.client.get_state_path", "modulename": "wmill.client", "qualname": "get_state_path", "kind": "function", "doc": "

\n", "signature": "() -> str:", "funcdef": "def"}, "wmill.client.get_resume_urls": {"fullname": "wmill.client.get_resume_urls", "modulename": "wmill.client", "qualname": "get_resume_urls", "kind": "function", "doc": "

\n", "signature": "(approver: str = None) -> dict:", "funcdef": "def"}, "wmill.client.request_interactive_slack_approval": {"fullname": "wmill.client.request_interactive_slack_approval", "modulename": "wmill.client", "qualname": "request_interactive_slack_approval", "kind": "function", "doc": "

\n", "signature": "(\tslack_resource_path: str,\tchannel_id: str,\tmessage: str = None,\tapprover: str = None,\tdefault_args_json: dict = None,\tdynamic_enums_json: dict = None) -> None:", "funcdef": "def"}, "wmill.client.send_teams_message": {"fullname": "wmill.client.send_teams_message", "modulename": "wmill.client", "qualname": "send_teams_message", "kind": "function", "doc": "

\n", "signature": "(\tconversation_id: str,\ttext: str,\tsuccess: bool,\tcard_block: dict = None):", "funcdef": "def"}, "wmill.client.cancel_running": {"fullname": "wmill.client.cancel_running", "modulename": "wmill.client", "qualname": "cancel_running", "kind": "function", "doc": "

Cancel currently running executions of the same script.

\n", "signature": "() -> dict:", "funcdef": "def"}, "wmill.client.run_script": {"fullname": "wmill.client.run_script", "modulename": "wmill.client", "qualname": "run_script", "kind": "function", "doc": "

Run script synchronously and return its result.

\n\n

Deprecated since version Use run_script_by_path or run_script_by_hash instead..

\n", "signature": "(\tpath: str = None,\thash_: str = None,\targs: dict = None,\ttimeout: datetime.timedelta | int | float = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.run_script_by_path": {"fullname": "wmill.client.run_script_by_path", "modulename": "wmill.client", "qualname": "run_script_by_path", "kind": "function", "doc": "

Run script by path synchronously and return its result.

\n", "signature": "(\tpath: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.run_script_by_hash": {"fullname": "wmill.client.run_script_by_hash", "modulename": "wmill.client", "qualname": "run_script_by_hash", "kind": "function", "doc": "

Run script by hash synchronously and return its result.

\n", "signature": "(\thash_: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.username_to_email": {"fullname": "wmill.client.username_to_email", "modulename": "wmill.client", "qualname": "username_to_email", "kind": "function", "doc": "

Get email from workspace username\nThis method is particularly useful for apps that require the email address of the viewer.\nIndeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.

\n", "signature": "(username: str) -> str:", "funcdef": "def"}, "wmill.client.task": {"fullname": "wmill.client.task", "modulename": "wmill.client", "qualname": "task", "kind": "function", "doc": "

\n", "signature": "(*args, **kwargs):", "funcdef": "def"}, "wmill.client.parse_resource_syntax": {"fullname": "wmill.client.parse_resource_syntax", "modulename": "wmill.client", "qualname": "parse_resource_syntax", "kind": "function", "doc": "

Parse resource syntax from string.

\n", "signature": "(s: str) -> Optional[str]:", "funcdef": "def"}, "wmill.client.parse_s3_object": {"fullname": "wmill.client.parse_s3_object", "modulename": "wmill.client", "qualname": "parse_s3_object", "kind": "function", "doc": "

Parse S3 object from string or S3Object format.

\n", "signature": "(s3_object: wmill.s3_types.S3Object | str) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.parse_variable_syntax": {"fullname": "wmill.client.parse_variable_syntax", "modulename": "wmill.client", "qualname": "parse_variable_syntax", "kind": "function", "doc": "

Parse variable syntax from string.

\n", "signature": "(s: str) -> Optional[str]:", "funcdef": "def"}, "wmill.client.append_to_result_stream": {"fullname": "wmill.client.append_to_result_stream", "modulename": "wmill.client", "qualname": "append_to_result_stream", "kind": "function", "doc": "

Append a text to the result stream.

\n\n

Args:\n text: text to append to the result stream

\n", "signature": "(text: str) -> None:", "funcdef": "def"}, "wmill.client.stream_result": {"fullname": "wmill.client.stream_result", "modulename": "wmill.client", "qualname": "stream_result", "kind": "function", "doc": "

Stream to the result stream.

\n\n

Args:\n stream: stream to stream to the result stream

\n", "signature": "(stream) -> None:", "funcdef": "def"}, "wmill.s3_reader": {"fullname": "wmill.s3_reader", "modulename": "wmill.s3_reader", "kind": "module", "doc": "

\n"}, "wmill.s3_reader.S3BufferedReader": {"fullname": "wmill.s3_reader.S3BufferedReader", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader", "kind": "class", "doc": "

Create a new buffered reader using the given readable raw IO object.

\n", "bases": "_io.BufferedReader"}, "wmill.s3_reader.S3BufferedReader.__init__": {"fullname": "wmill.s3_reader.S3BufferedReader.__init__", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.__init__", "kind": "function", "doc": "

\n", "signature": "(\tworkspace: str,\twindmill_client: httpx.Client,\tfile_key: str,\ts3_resource_path: Optional[str],\tstorage: Optional[str])"}, "wmill.s3_reader.S3BufferedReader.peek": {"fullname": "wmill.s3_reader.S3BufferedReader.peek", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.peek", "kind": "function", "doc": "

\n", "signature": "(self, size=0):", "funcdef": "def"}, "wmill.s3_reader.S3BufferedReader.read": {"fullname": "wmill.s3_reader.S3BufferedReader.read", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.read", "kind": "function", "doc": "

Read and return up to n bytes.

\n\n

If the argument is omitted, None, or negative, reads and\nreturns all data until EOF.

\n\n

If the argument is positive, and the underlying raw stream is\nnot 'interactive', multiple raw reads may be issued to satisfy\nthe byte count (unless EOF is reached first). But for\ninteractive raw streams (as well as sockets and pipes), at most\none raw read will be issued, and a short result does not imply\nthat EOF is imminent.

\n\n

Returns an empty bytes object on EOF.

\n\n

Returns None if the underlying raw stream was open in non-blocking\nmode and no data is available at the moment.

\n", "signature": "(self, size=-1):", "funcdef": "def"}, "wmill.s3_reader.S3BufferedReader.read1": {"fullname": "wmill.s3_reader.S3BufferedReader.read1", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.read1", "kind": "function", "doc": "

Read and return up to n bytes, with at most one read() call\nto the underlying raw stream. A short result does not imply\nthat EOF is imminent.

\n\n

Returns an empty bytes object on EOF.

\n", "signature": "(self, size=-1):", "funcdef": "def"}, "wmill.s3_reader.bytes_generator": {"fullname": "wmill.s3_reader.bytes_generator", "modulename": "wmill.s3_reader", "qualname": "bytes_generator", "kind": "function", "doc": "

\n", "signature": "(buffered_reader: Union[_io.BufferedReader, _io.BytesIO]):", "funcdef": "def"}, "wmill.s3_types": {"fullname": "wmill.s3_types", "modulename": "wmill.s3_types", "kind": "module", "doc": "

\n"}, "wmill.s3_types.S3Object": {"fullname": "wmill.s3_types.S3Object", "modulename": "wmill.s3_types", "qualname": "S3Object", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.S3Object.s3": {"fullname": "wmill.s3_types.S3Object.s3", "modulename": "wmill.s3_types", "qualname": "S3Object.s3", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3Object.storage": {"fullname": "wmill.s3_types.S3Object.storage", "modulename": "wmill.s3_types", "qualname": "S3Object.storage", "kind": "variable", "doc": "

\n", "annotation": ": Optional[str]"}, "wmill.s3_types.S3Object.presigned": {"fullname": "wmill.s3_types.S3Object.presigned", "modulename": "wmill.s3_types", "qualname": "S3Object.presigned", "kind": "variable", "doc": "

\n", "annotation": ": Optional[str]"}, "wmill.s3_types.S3FsClientKwargs": {"fullname": "wmill.s3_types.S3FsClientKwargs", "modulename": "wmill.s3_types", "qualname": "S3FsClientKwargs", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.S3FsClientKwargs.region_name": {"fullname": "wmill.s3_types.S3FsClientKwargs.region_name", "modulename": "wmill.s3_types", "qualname": "S3FsClientKwargs.region_name", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs": {"fullname": "wmill.s3_types.S3FsArgs", "modulename": "wmill.s3_types", "qualname": "S3FsArgs", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.S3FsArgs.endpoint_url": {"fullname": "wmill.s3_types.S3FsArgs.endpoint_url", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.endpoint_url", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs.key": {"fullname": "wmill.s3_types.S3FsArgs.key", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.key", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs.secret": {"fullname": "wmill.s3_types.S3FsArgs.secret", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.secret", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs.use_ssl": {"fullname": "wmill.s3_types.S3FsArgs.use_ssl", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.use_ssl", "kind": "variable", "doc": "

\n", "annotation": ": bool"}, "wmill.s3_types.S3FsArgs.cache_regions": {"fullname": "wmill.s3_types.S3FsArgs.cache_regions", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.cache_regions", "kind": "variable", "doc": "

\n", "annotation": ": bool"}, "wmill.s3_types.S3FsArgs.client_kwargs": {"fullname": "wmill.s3_types.S3FsArgs.client_kwargs", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.client_kwargs", "kind": "variable", "doc": "

\n", "annotation": ": wmill.s3_types.S3FsClientKwargs"}, "wmill.s3_types.StorageOptions": {"fullname": "wmill.s3_types.StorageOptions", "modulename": "wmill.s3_types", "qualname": "StorageOptions", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"fullname": "wmill.s3_types.StorageOptions.aws_endpoint_url", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_endpoint_url", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"fullname": "wmill.s3_types.StorageOptions.aws_access_key_id", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_access_key_id", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"fullname": "wmill.s3_types.StorageOptions.aws_secret_access_key", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_secret_access_key", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_region": {"fullname": "wmill.s3_types.StorageOptions.aws_region", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_region", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_allow_http": {"fullname": "wmill.s3_types.StorageOptions.aws_allow_http", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_allow_http", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.PolarsConnectionSettings": {"fullname": "wmill.s3_types.PolarsConnectionSettings", "modulename": "wmill.s3_types", "qualname": "PolarsConnectionSettings", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"fullname": "wmill.s3_types.PolarsConnectionSettings.s3fs_args", "modulename": "wmill.s3_types", "qualname": "PolarsConnectionSettings.s3fs_args", "kind": "variable", "doc": "

\n", "annotation": ": wmill.s3_types.S3FsArgs"}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"fullname": "wmill.s3_types.PolarsConnectionSettings.storage_options", "modulename": "wmill.s3_types", "qualname": "PolarsConnectionSettings.storage_options", "kind": "variable", "doc": "

\n", "annotation": ": wmill.s3_types.StorageOptions"}, "wmill.s3_types.Boto3ConnectionSettings": {"fullname": "wmill.s3_types.Boto3ConnectionSettings", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.endpoint_url", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.endpoint_url", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.region_name", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.region_name", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.use_ssl", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.use_ssl", "kind": "variable", "doc": "

\n", "annotation": ": bool"}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.aws_access_key_id", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.aws_secret_access_key", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.DuckDbConnectionSettings": {"fullname": "wmill.s3_types.DuckDbConnectionSettings", "modulename": "wmill.s3_types", "qualname": "DuckDbConnectionSettings", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"fullname": "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str", "modulename": "wmill.s3_types", "qualname": "DuckDbConnectionSettings.connection_settings_str", "kind": "variable", "doc": "

\n", "annotation": ": str"}}, "docInfo": {"wmill": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.logger": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 8, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.JobStatus": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 12, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 3}, "wmill.client.Windmill.base_url": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.token": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.headers": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.verify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.client": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.workspace": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.path": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.mocked_api": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_mocked_api": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_client": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "wmill.client.Windmill.get": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 3}, "wmill.client.Windmill.post": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 3}, "wmill.client.Windmill.create_token": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 3}, "wmill.client.Windmill.run_script_async": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 33}, "wmill.client.Windmill.run_script_by_path_async": {"qualname": 6, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 14}, "wmill.client.Windmill.run_script_by_hash_async": {"qualname": 6, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 65, "bases": 0, "doc": 14}, "wmill.client.Windmill.run_flow_async": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 86, "bases": 0, "doc": 12}, "wmill.client.Windmill.run_script": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 169, "bases": 0, "doc": 29}, "wmill.client.Windmill.run_script_by_path": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 12}, "wmill.client.Windmill.run_script_by_hash": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 144, "bases": 0, "doc": 12}, "wmill.client.Windmill.wait_job": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 118, "bases": 0, "doc": 3}, "wmill.client.Windmill.cancel_running": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_job": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_root_job_id": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_id_token": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_job_status": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_result": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_variable": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_variable": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_resource": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_resource": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_state": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_progress": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_progress": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_flow_user_state": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 13}, "wmill.client.Windmill.get_flow_user_state": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 13}, "wmill.client.Windmill.version": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_duckdb_connection_settings": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 23}, "wmill.client.Windmill.get_polars_connection_settings": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 23}, "wmill.client.Windmill.get_boto3_connection_settings": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 23}, "wmill.client.Windmill.load_s3_file": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 62, "bases": 0, "doc": 52}, "wmill.client.Windmill.load_s3_file_reader": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 51}, "wmill.client.Windmill.write_s3_file": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 153, "bases": 0, "doc": 77}, "wmill.client.Windmill.sign_s3_objects": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "wmill.client.Windmill.sign_s3_object": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "wmill.client.Windmill.whoami": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "wmill.client.Windmill.user": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.state_path": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.state": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_shared_state_pickle": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_shared_state_pickle": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 11}, "wmill.client.Windmill.set_shared_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_shared_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_resume_urls": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "wmill.client.Windmill.request_interactive_slack_approval": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 116, "bases": 0, "doc": 344}, "wmill.client.Windmill.username_to_email": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 52}, "wmill.client.Windmill.send_teams_message": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 21}, "wmill.client.init_global_client": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "wmill.client.deprecate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 3}, "wmill.client.get_workspace": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "wmill.client.get_root_job_id": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 3}, "wmill.client.get_version": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "wmill.client.run_script_async": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 3}, "wmill.client.run_flow_async": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 3}, "wmill.client.run_script_sync": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 3}, "wmill.client.run_script_by_path_async": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 76, "bases": 0, "doc": 3}, "wmill.client.run_script_by_hash_async": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "wmill.client.run_script_by_path_sync": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 3}, "wmill.client.get_id_token": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 24}, "wmill.client.get_job_status": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 50, "bases": 0, "doc": 3}, "wmill.client.get_result": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "wmill.client.duckdb_connection_settings": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 23}, "wmill.client.polars_connection_settings": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 23}, "wmill.client.boto3_connection_settings": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 23}, "wmill.client.load_s3_file": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 63, "bases": 0, "doc": 14}, "wmill.client.load_s3_file_reader": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 11}, "wmill.client.write_s3_file": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 154, "bases": 0, "doc": 45}, "wmill.client.sign_s3_objects": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 21}, "wmill.client.sign_s3_object": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 19}, "wmill.client.whoami": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 6}, "wmill.client.get_state": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 5}, "wmill.client.get_resource": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 6}, "wmill.client.set_resource": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 19}, "wmill.client.set_state": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 5}, "wmill.client.set_progress": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 5}, "wmill.client.get_progress": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 5}, "wmill.client.set_shared_state_pickle": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 11}, "wmill.client.get_shared_state_pickle": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 11}, "wmill.client.set_shared_state": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 11}, "wmill.client.get_shared_state": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 11}, "wmill.client.get_variable": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 12}, "wmill.client.set_variable": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 19}, "wmill.client.get_flow_user_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 13}, "wmill.client.set_flow_user_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 13}, "wmill.client.get_state_path": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "wmill.client.get_resume_urls": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "wmill.client.request_interactive_slack_approval": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "doc": 3}, "wmill.client.send_teams_message": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "wmill.client.cancel_running": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "wmill.client.run_script": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 157, "bases": 0, "doc": 29}, "wmill.client.run_script_by_path": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 12}, "wmill.client.run_script_by_hash": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 132, "bases": 0, "doc": 12}, "wmill.client.username_to_email": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 52}, "wmill.client.task": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "wmill.client.parse_resource_syntax": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 8}, "wmill.client.parse_s3_object": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 11}, "wmill.client.parse_variable_syntax": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 8}, "wmill.client.append_to_result_stream": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 21}, "wmill.client.stream_result": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 19}, "wmill.s3_reader": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_reader.S3BufferedReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 15}, "wmill.s3_reader.S3BufferedReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 80, "bases": 0, "doc": 3}, "wmill.s3_reader.S3BufferedReader.peek": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "wmill.s3_reader.S3BufferedReader.read": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 124}, "wmill.s3_reader.S3BufferedReader.read1": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 41}, "wmill.s3_reader.bytes_generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 3}, "wmill.s3_types": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3Object": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.S3Object.s3": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3Object.storage": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3Object.presigned": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsClientKwargs": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.S3FsClientKwargs.region_name": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.S3FsArgs.endpoint_url": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.key": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.secret": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.use_ssl": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.cache_regions": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.client_kwargs": {"qualname": 3, "fullname": 6, "annotation": 5, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_region": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_allow_http": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.PolarsConnectionSettings": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"qualname": 3, "fullname": 6, "annotation": 5, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"qualname": 3, "fullname": 6, "annotation": 5, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.DuckDbConnectionSettings": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}}, "length": 153, "save": true}, "index": {"qualname": {"root": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 4}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 59}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.whoami": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}}}}}, "d": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}}, "df": 6}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 4, "s": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2, "r": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 5, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}}, "df": 3, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.task": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.headers": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 4}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.verify": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.version": {"tf": 1}, "wmill.client.get_version": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 5}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 4}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}}, "df": 8}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.post": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}}, "df": 4}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 7}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 4}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 33}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.init_global_client": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 16, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 4}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}}, "df": 5}}}}}}, "a": {"docs": {}, "df": 0, "d": {"1": {"docs": {"wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 1}, "docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 2}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}}, "df": 12, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 4}}}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 7}}}}}}}, "docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 14}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}, "e": {"docs": {"wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}}, "df": 18}}}, "r": {"docs": {"wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 6}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 14, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 4}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}}, "df": 2}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 6}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}}, "df": 2}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 3}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 2}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 5}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 1}}}}}}}}, "fullname": {"root": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 2, "w": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill": {"tf": 1}, "wmill.client": {"tf": 1}, "wmill.client.logger": {"tf": 1}, "wmill.client.JobStatus": {"tf": 1}, "wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.task": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}, "wmill.s3_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}, "wmill.s3_types": {"tf": 1}, "wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 153}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 59}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.whoami": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client": {"tf": 1}, "wmill.client.logger": {"tf": 1}, "wmill.client.JobStatus": {"tf": 1}, "wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1.4142135623730951}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1.4142135623730951}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.task": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 115}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 4}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}}}}}, "d": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}}, "df": 6}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 4, "s": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2, "r": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 5, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}}, "df": 3, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.task": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types": {"tf": 1}, "wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 31}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.headers": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 4}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.verify": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.version": {"tf": 1}, "wmill.client.get_version": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 5}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}}, "df": 8}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.post": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}}, "df": 4}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 7}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 4}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 33}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.init_global_client": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 16, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 4}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}}, "df": 5}}}}}}, "a": {"docs": {}, "df": 0, "d": {"1": {"docs": {"wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 1}, "docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.s3_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 9}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}, "wmill.s3_types": {"tf": 1}, "wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1.4142135623730951}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 49, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 4}}}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 7}}}}}}}, "docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 14}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}, "e": {"docs": {"wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}}, "df": 18}}}, "r": {"docs": {"wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 6}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 14, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 4}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}}, "df": 2}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 6}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}}, "df": 2}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 3}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 2}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 5}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 1}}}}}}}}, "annotation": {"root": {"docs": {"wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 26, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.user": {"tf": 1}}, "df": 1}}}}, "s": {"3": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1}}}}}}}, "docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.state_path": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 16}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.state": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}}}, "default_value": {"root": {"docs": {"wmill.client.logger": {"tf": 1.4142135623730951}, "wmill.client.JobStatus": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}, "x": {"2": {"7": {"docs": {"wmill.client.JobStatus": {"tf": 2.449489742783178}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "signature": {"root": {"0": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}}, "df": 1}, "1": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}, "3": {"9": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 2.449489742783178}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_job_status": {"tf": 2.449489742783178}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state": {"tf": 1.4142135623730951}}, "df": 17}, "docs": {}, "df": 0}, "docs": {"wmill.client.Windmill.__init__": {"tf": 6}, "wmill.client.Windmill.get_mocked_api": {"tf": 4.123105625617661}, "wmill.client.Windmill.get_client": {"tf": 4}, "wmill.client.Windmill.get": {"tf": 5.830951894845301}, "wmill.client.Windmill.post": {"tf": 5.830951894845301}, "wmill.client.Windmill.create_token": {"tf": 5.916079783099616}, "wmill.client.Windmill.run_script_async": {"tf": 8.602325267042627}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 6.928203230275509}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 7.280109889280518}, "wmill.client.Windmill.run_flow_async": {"tf": 8.18535277187245}, "wmill.client.Windmill.run_script": {"tf": 11.74734012447073}, "wmill.client.Windmill.run_script_by_path": {"tf": 10.770329614269007}, "wmill.client.Windmill.run_script_by_hash": {"tf": 10.816653826391969}, "wmill.client.Windmill.wait_job": {"tf": 9.746794344808963}, "wmill.client.Windmill.cancel_running": {"tf": 3.4641016151377544}, "wmill.client.Windmill.get_job": {"tf": 4.47213595499958}, "wmill.client.Windmill.get_root_job_id": {"tf": 5.5677643628300215}, "wmill.client.Windmill.get_id_token": {"tf": 4.47213595499958}, "wmill.client.Windmill.get_job_status": {"tf": 6.4031242374328485}, "wmill.client.Windmill.get_result": {"tf": 5.830951894845301}, "wmill.client.Windmill.get_variable": {"tf": 4.47213595499958}, "wmill.client.Windmill.set_variable": {"tf": 6.48074069840786}, "wmill.client.Windmill.get_resource": {"tf": 6.244997998398398}, "wmill.client.Windmill.set_resource": {"tf": 5.830951894845301}, "wmill.client.Windmill.set_state": {"tf": 4.242640687119285}, "wmill.client.Windmill.set_progress": {"tf": 6.082762530298219}, "wmill.client.Windmill.get_progress": {"tf": 5.5677643628300215}, "wmill.client.Windmill.set_flow_user_state": {"tf": 5.291502622129181}, "wmill.client.Windmill.get_flow_user_state": {"tf": 4.47213595499958}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 6.557438524302}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 6.164414002968976}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 6.164414002968976}, "wmill.client.Windmill.load_s3_file": {"tf": 7}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 7.3484692283495345}, "wmill.client.Windmill.write_s3_file": {"tf": 11}, "wmill.client.Windmill.sign_s3_objects": {"tf": 7.280109889280518}, "wmill.client.Windmill.sign_s3_object": {"tf": 6.557438524302}, "wmill.client.Windmill.whoami": {"tf": 3.4641016151377544}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 5.656854249492381}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 4.898979485566356}, "wmill.client.Windmill.set_shared_state": {"tf": 5.656854249492381}, "wmill.client.Windmill.get_shared_state": {"tf": 4.898979485566356}, "wmill.client.Windmill.get_resume_urls": {"tf": 5.0990195135927845}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 9.539392014169456}, "wmill.client.Windmill.username_to_email": {"tf": 4.47213595499958}, "wmill.client.Windmill.send_teams_message": {"tf": 7.681145747868608}, "wmill.client.init_global_client": {"tf": 3.1622776601683795}, "wmill.client.deprecate": {"tf": 3.7416573867739413}, "wmill.client.get_workspace": {"tf": 3}, "wmill.client.get_root_job_id": {"tf": 5.196152422706632}, "wmill.client.get_version": {"tf": 3}, "wmill.client.run_script_async": {"tf": 7.54983443527075}, "wmill.client.run_flow_async": {"tf": 8.48528137423857}, "wmill.client.run_script_sync": {"tf": 10.295630140987}, "wmill.client.run_script_by_path_async": {"tf": 7.874007874011811}, "wmill.client.run_script_by_hash_async": {"tf": 7.937253933193772}, "wmill.client.run_script_by_path_sync": {"tf": 10.295630140987}, "wmill.client.get_id_token": {"tf": 4}, "wmill.client.get_job_status": {"tf": 6.082762530298219}, "wmill.client.get_result": {"tf": 5.830951894845301}, "wmill.client.duckdb_connection_settings": {"tf": 5.656854249492381}, "wmill.client.polars_connection_settings": {"tf": 5.656854249492381}, "wmill.client.boto3_connection_settings": {"tf": 5.656854249492381}, "wmill.client.load_s3_file": {"tf": 7.0710678118654755}, "wmill.client.load_s3_file_reader": {"tf": 7.416198487095663}, "wmill.client.write_s3_file": {"tf": 11.045361017187261}, "wmill.client.sign_s3_objects": {"tf": 6.928203230275509}, "wmill.client.sign_s3_object": {"tf": 6.082762530298219}, "wmill.client.whoami": {"tf": 3}, "wmill.client.get_state": {"tf": 3}, "wmill.client.get_resource": {"tf": 5.916079783099616}, "wmill.client.set_resource": {"tf": 6.324555320336759}, "wmill.client.set_state": {"tf": 4}, "wmill.client.set_progress": {"tf": 5.916079783099616}, "wmill.client.get_progress": {"tf": 5.196152422706632}, "wmill.client.set_shared_state_pickle": {"tf": 5.0990195135927845}, "wmill.client.get_shared_state_pickle": {"tf": 4.242640687119285}, "wmill.client.set_shared_state": {"tf": 5.0990195135927845}, "wmill.client.get_shared_state": {"tf": 4.242640687119285}, "wmill.client.get_variable": {"tf": 4}, "wmill.client.set_variable": {"tf": 6.164414002968976}, "wmill.client.get_flow_user_state": {"tf": 4}, "wmill.client.set_flow_user_state": {"tf": 4.898979485566356}, "wmill.client.get_state_path": {"tf": 3}, "wmill.client.get_resume_urls": {"tf": 4.69041575982343}, "wmill.client.request_interactive_slack_approval": {"tf": 9.273618495495704}, "wmill.client.send_teams_message": {"tf": 6.928203230275509}, "wmill.client.cancel_running": {"tf": 3}, "wmill.client.run_script": {"tf": 11.313708498984761}, "wmill.client.run_script_by_path": {"tf": 10.295630140987}, "wmill.client.run_script_by_hash": {"tf": 10.344080432788601}, "wmill.client.username_to_email": {"tf": 4}, "wmill.client.task": {"tf": 4.242640687119285}, "wmill.client.parse_resource_syntax": {"tf": 4.58257569495584}, "wmill.client.parse_s3_object": {"tf": 6.082762530298219}, "wmill.client.parse_variable_syntax": {"tf": 4.58257569495584}, "wmill.client.append_to_result_stream": {"tf": 4}, "wmill.client.stream_result": {"tf": 3.4641016151377544}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 7.937253933193772}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 4.242640687119285}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 4.242640687119285}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 4.242640687119285}, "wmill.s3_reader.bytes_generator": {"tf": 5.830951894845301}}, "df": 103, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.Windmill.wait_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_sync": {"tf": 1.7320508075688772}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.run_script": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash": {"tf": 1.7320508075688772}}, "df": 18}}, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "o": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_async": {"tf": 2}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script": {"tf": 2.449489742783178}, "wmill.client.Windmill.run_script_by_path": {"tf": 2}, "wmill.client.Windmill.run_script_by_hash": {"tf": 2}, "wmill.client.Windmill.wait_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_root_job_id": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 2.449489742783178}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1.4142135623730951}, "wmill.client.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_sync": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_sync": {"tf": 1.7320508075688772}, "wmill.client.get_result": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 2.6457513110645907}, "wmill.client.get_resource": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1.4142135623730951}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 2.23606797749979}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.run_script": {"tf": 2.23606797749979}, "wmill.client.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 55}}, "t": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 13}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_sync": {"tf": 1.4142135623730951}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_hash": {"tf": 1.4142135623730951}}, "df": 17}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 10}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}}, "df": 4, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1.4142135623730951}}, "df": 17}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1.4142135623730951}}, "df": 17}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 14}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.7320508075688772}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_objects": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_object": {"tf": 1.7320508075688772}, "wmill.client.parse_s3_object": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 18, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1.4142135623730951}}, "df": 11}}}}}}}, "docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 44}}, "c": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}, "r": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_variable": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 2}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1.4142135623730951}, "wmill.client.get_version": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.run_flow_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_sync": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_sync": {"tf": 1.4142135623730951}, "wmill.client.get_id_token": {"tf": 1.4142135623730951}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1.4142135623730951}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 2}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_variable": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 2}, "wmill.client.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.run_script": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.parse_resource_syntax": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1.4142135623730951}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 2}}, "df": 79, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.stream_result": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1.4142135623730951}}, "df": 10}}}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}, "r": {"docs": {"wmill.client.run_script_async": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 32}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 2}}}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 10}}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}}, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 4}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_client": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 11}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 17}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"wmill.client.init_global_client": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 7}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1.4142135623730951}, "wmill.client.Windmill.wait_job": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 13}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 3}}}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.task": {"tf": 1}}, "df": 3}}}}}, "e": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 5}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 42}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}}, "df": 4}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.task": {"tf": 1}}, "df": 19}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 11}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1.4142135623730951}, "wmill.client.get_result": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_state": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 31}}, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 4}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 9, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 17}}, "s": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 13}, "d": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 16}, "f": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}}, "df": 2}, "o": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1.4142135623730951}}, "df": 5}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}}, "df": 12}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 6}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}}, "df": 2}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}}}}, "bases": {"root": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}}, "df": 7}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}}, "df": 7}}}}}}, "doc": {"root": {"4": {"2": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}}, "df": 1}, "docs": {"wmill": {"tf": 1.7320508075688772}, "wmill.client": {"tf": 1.7320508075688772}, "wmill.client.logger": {"tf": 1.7320508075688772}, "wmill.client.JobStatus": {"tf": 1.7320508075688772}, "wmill.client.Windmill": {"tf": 1.7320508075688772}, "wmill.client.Windmill.__init__": {"tf": 1.7320508075688772}, "wmill.client.Windmill.base_url": {"tf": 1.7320508075688772}, "wmill.client.Windmill.token": {"tf": 1.7320508075688772}, "wmill.client.Windmill.headers": {"tf": 1.7320508075688772}, "wmill.client.Windmill.verify": {"tf": 1.7320508075688772}, "wmill.client.Windmill.client": {"tf": 1.7320508075688772}, "wmill.client.Windmill.workspace": {"tf": 1.7320508075688772}, "wmill.client.Windmill.path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.mocked_api": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_mocked_api": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_client": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get": {"tf": 1.7320508075688772}, "wmill.client.Windmill.post": {"tf": 1.7320508075688772}, "wmill.client.Windmill.create_token": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_async": {"tf": 2.8284271247461903}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_flow_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script": {"tf": 2.8284271247461903}, "wmill.client.Windmill.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.Windmill.wait_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.cancel_running": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_root_job_id": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_id_token": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_job_status": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_result": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_variable": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_variable": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_resource": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_resource": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_state": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_progress": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_progress": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.version": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 3}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 3}, "wmill.client.Windmill.write_s3_file": {"tf": 4.242640687119285}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.7320508075688772}, "wmill.client.Windmill.whoami": {"tf": 1.7320508075688772}, "wmill.client.Windmill.user": {"tf": 1.7320508075688772}, "wmill.client.Windmill.state_path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.state": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_resume_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 10.862780491200215}, "wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.init_global_client": {"tf": 1.7320508075688772}, "wmill.client.deprecate": {"tf": 1.7320508075688772}, "wmill.client.get_workspace": {"tf": 1.7320508075688772}, "wmill.client.get_root_job_id": {"tf": 1.7320508075688772}, "wmill.client.get_version": {"tf": 1.7320508075688772}, "wmill.client.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.run_flow_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_sync": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_sync": {"tf": 1.7320508075688772}, "wmill.client.get_id_token": {"tf": 1.7320508075688772}, "wmill.client.get_job_status": {"tf": 1.7320508075688772}, "wmill.client.get_result": {"tf": 1.7320508075688772}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 3.1622776601683795}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.whoami": {"tf": 1.4142135623730951}, "wmill.client.get_state": {"tf": 1.4142135623730951}, "wmill.client.get_resource": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_state": {"tf": 1.4142135623730951}, "wmill.client.set_progress": {"tf": 1.4142135623730951}, "wmill.client.get_progress": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_variable": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}, "wmill.client.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.get_state_path": {"tf": 1.7320508075688772}, "wmill.client.get_resume_urls": {"tf": 1.7320508075688772}, "wmill.client.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.send_teams_message": {"tf": 1.7320508075688772}, "wmill.client.cancel_running": {"tf": 1.7320508075688772}, "wmill.client.run_script": {"tf": 2.8284271247461903}, "wmill.client.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.task": {"tf": 1.7320508075688772}, "wmill.client.parse_resource_syntax": {"tf": 1.7320508075688772}, "wmill.client.parse_s3_object": {"tf": 1.7320508075688772}, "wmill.client.parse_variable_syntax": {"tf": 1.7320508075688772}, "wmill.client.append_to_result_stream": {"tf": 2.23606797749979}, "wmill.client.stream_result": {"tf": 2.23606797749979}, "wmill.s3_reader": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 3.872983346207417}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 2.449489742783178}, "wmill.s3_reader.bytes_generator": {"tf": 1.7320508075688772}, "wmill.s3_types": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object.s3": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object.storage": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object.presigned": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.key": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1.7320508075688772}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1.7320508075688772}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1.7320508075688772}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1.7320508075688772}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1.7320508075688772}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1.7320508075688772}}, "df": 153, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 5}, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.whoami": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 2}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}}, "df": 5}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 3}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"1": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "2": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.get_variable": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}, "wmill.client.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 26, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 10, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 22}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 14, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}}, "df": 1}}}}, "t": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 10}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}}, "df": 1, "#": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1, "r": {"1": {"2": {"3": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 2.23606797749979}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 2.23606797749979}, "wmill.client.Windmill.write_s3_file": {"tf": 2.6457513110645907}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 15, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.7320508075688772}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 4}}}}}}}, "docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 11}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 6}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}}, "df": 13, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "e": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 14}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}, "wmill.client.stream_result": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 6}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 2}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 3.1622776601683795}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 5}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 12, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 15}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}, "wmill.client.stream_result": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 10}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}}, "df": 11}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 1}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.6457513110645907}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 8, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}, "b": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.23606797749979}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 11}}, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.449489742783178}, "wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 6}, "n": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 17, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "o": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.7320508075688772}}, "df": 5}, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"1": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 4, "r": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}}, "df": 2}}}}, "s": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 2}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 11}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "f": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}}, "df": 1}}, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1, "y": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.run_script": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 6}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 3}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 5}, "a": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}}, "df": 12, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}, "wmill.client.run_script": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 6, "g": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "f": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.Windmill.username_to_email": {"tf": 2}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.username_to_email": {"tf": 2}}, "df": 12}, "b": {"docs": {}, "df": 0, "j": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 2}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}}, "df": 3, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5, "s": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}}, "df": 1}}, "b": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.8284271247461903}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 14}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 2}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 2.23606797749979}, "wmill.client.Windmill.write_s3_file": {"tf": 3.1622776601683795}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 6}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 7, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.parse_s3_object": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}, "o": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.load_s3_file": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 2}, "wmill.client.username_to_email": {"tf": 2}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 2}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 4}, "wmill.client.Windmill.username_to_email": {"tf": 2.8284271247461903}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.username_to_email": {"tf": 2.8284271247461903}, "wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}, "wmill.client.stream_result": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 43}, "a": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 10}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 3}, "r": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}, "o": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.append_to_result_stream": {"tf": 1.7320508075688772}, "wmill.client.stream_result": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 19, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}}, "df": 3}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1.7320508075688772}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.write_s3_file": {"tf": 1.7320508075688772}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 9}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 12}}, "c": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"1": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "2": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 4}}}, "n": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}}, "w": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 4}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 5}}}}}}}}, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}}, "df": 3, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.get_resource": {"tf": 1}}, "df": 3}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 3}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}}, "df": 2}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; + /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"wmill": {"fullname": "wmill", "modulename": "wmill", "kind": "module", "doc": "

\n"}, "wmill.client": {"fullname": "wmill.client", "modulename": "wmill.client", "kind": "module", "doc": "

\n"}, "wmill.client.logger": {"fullname": "wmill.client.logger", "modulename": "wmill.client", "qualname": "logger", "kind": "variable", "doc": "

\n", "default_value": "<Logger windmill_client (WARNING)>"}, "wmill.client.JobStatus": {"fullname": "wmill.client.JobStatus", "modulename": "wmill.client", "qualname": "JobStatus", "kind": "variable", "doc": "

\n", "default_value": "typing.Literal['RUNNING', 'WAITING', 'COMPLETED']"}, "wmill.client.Windmill": {"fullname": "wmill.client.Windmill", "modulename": "wmill.client", "qualname": "Windmill", "kind": "class", "doc": "

\n"}, "wmill.client.Windmill.__init__": {"fullname": "wmill.client.Windmill.__init__", "modulename": "wmill.client", "qualname": "Windmill.__init__", "kind": "function", "doc": "

\n", "signature": "(base_url=None, token=None, workspace=None, verify=True)"}, "wmill.client.Windmill.base_url": {"fullname": "wmill.client.Windmill.base_url", "modulename": "wmill.client", "qualname": "Windmill.base_url", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.token": {"fullname": "wmill.client.Windmill.token", "modulename": "wmill.client", "qualname": "Windmill.token", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.headers": {"fullname": "wmill.client.Windmill.headers", "modulename": "wmill.client", "qualname": "Windmill.headers", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.verify": {"fullname": "wmill.client.Windmill.verify", "modulename": "wmill.client", "qualname": "Windmill.verify", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.client": {"fullname": "wmill.client.Windmill.client", "modulename": "wmill.client", "qualname": "Windmill.client", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.workspace": {"fullname": "wmill.client.Windmill.workspace", "modulename": "wmill.client", "qualname": "Windmill.workspace", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.path": {"fullname": "wmill.client.Windmill.path", "modulename": "wmill.client", "qualname": "Windmill.path", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.mocked_api": {"fullname": "wmill.client.Windmill.mocked_api", "modulename": "wmill.client", "qualname": "Windmill.mocked_api", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.get_mocked_api": {"fullname": "wmill.client.Windmill.get_mocked_api", "modulename": "wmill.client", "qualname": "Windmill.get_mocked_api", "kind": "function", "doc": "

\n", "signature": "(self) -> Optional[dict]:", "funcdef": "def"}, "wmill.client.Windmill.get_client": {"fullname": "wmill.client.Windmill.get_client", "modulename": "wmill.client", "qualname": "Windmill.get_client", "kind": "function", "doc": "

\n", "signature": "(self) -> httpx.Client:", "funcdef": "def"}, "wmill.client.Windmill.get": {"fullname": "wmill.client.Windmill.get", "modulename": "wmill.client", "qualname": "Windmill.get", "kind": "function", "doc": "

\n", "signature": "(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:", "funcdef": "def"}, "wmill.client.Windmill.post": {"fullname": "wmill.client.Windmill.post", "modulename": "wmill.client", "qualname": "Windmill.post", "kind": "function", "doc": "

\n", "signature": "(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:", "funcdef": "def"}, "wmill.client.Windmill.create_token": {"fullname": "wmill.client.Windmill.create_token", "modulename": "wmill.client", "qualname": "Windmill.create_token", "kind": "function", "doc": "

\n", "signature": "(self, duration=datetime.timedelta(days=1)) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script_async": {"fullname": "wmill.client.Windmill.run_script_async", "modulename": "wmill.client", "qualname": "Windmill.run_script_async", "kind": "function", "doc": "

Create a script job and return its job id.

\n\n

Deprecated since version Use run_script_by_path_async or run_script_by_hash_async instead..

\n", "signature": "(\tself,\tpath: str = None,\thash_: str = None,\targs: dict = None,\tscheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_path_async": {"fullname": "wmill.client.Windmill.run_script_by_path_async", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_path_async", "kind": "function", "doc": "

Create a script job by path and return its job id.

\n", "signature": "(self, path: str, args: dict = None, scheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_hash_async": {"fullname": "wmill.client.Windmill.run_script_by_hash_async", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_hash_async", "kind": "function", "doc": "

Create a script job by hash and return its job id.

\n", "signature": "(\tself,\thash_: str,\targs: dict = None,\tscheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_flow_async": {"fullname": "wmill.client.Windmill.run_flow_async", "modulename": "wmill.client", "qualname": "Windmill.run_flow_async", "kind": "function", "doc": "

Create a flow job and return its job id.

\n", "signature": "(\tself,\tpath: str,\targs: dict = None,\tscheduled_in_secs: int = None,\tdo_not_track_in_parent: bool = True) -> str:", "funcdef": "def"}, "wmill.client.Windmill.run_script": {"fullname": "wmill.client.Windmill.run_script", "modulename": "wmill.client", "qualname": "Windmill.run_script", "kind": "function", "doc": "

Run script synchronously and return its result.

\n\n

Deprecated since version Use run_script_by_path or run_script_by_hash instead..

\n", "signature": "(\tself,\tpath: str = None,\thash_: str = None,\targs: dict = None,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_path": {"fullname": "wmill.client.Windmill.run_script_by_path", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_path", "kind": "function", "doc": "

Run script by path synchronously and return its result.

\n", "signature": "(\tself,\tpath: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.run_script_by_hash": {"fullname": "wmill.client.Windmill.run_script_by_hash", "modulename": "wmill.client", "qualname": "Windmill.run_script_by_hash", "kind": "function", "doc": "

Run script by hash synchronously and return its result.

\n", "signature": "(\tself,\thash_: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.run_inline_script_preview": {"fullname": "wmill.client.Windmill.run_inline_script_preview", "modulename": "wmill.client", "qualname": "Windmill.run_inline_script_preview", "kind": "function", "doc": "

Run a script on the current worker without creating a job

\n", "signature": "(self, content: str, language: str, args: dict = None) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.wait_job": {"fullname": "wmill.client.Windmill.wait_job", "modulename": "wmill.client", "qualname": "Windmill.wait_job", "kind": "function", "doc": "

\n", "signature": "(\tself,\tjob_id,\ttimeout: datetime.timedelta | int | float | None = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = False):", "funcdef": "def"}, "wmill.client.Windmill.cancel_job": {"fullname": "wmill.client.Windmill.cancel_job", "modulename": "wmill.client", "qualname": "Windmill.cancel_job", "kind": "function", "doc": "

Cancel a specific job by ID.

\n\n

Args:\n job_id: UUID of the job to cancel\n reason: Optional reason for cancellation

\n\n

Returns:\n Response message from the cancel endpoint

\n", "signature": "(self, job_id: str, reason: str = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.cancel_running": {"fullname": "wmill.client.Windmill.cancel_running", "modulename": "wmill.client", "qualname": "Windmill.cancel_running", "kind": "function", "doc": "

Cancel currently running executions of the same script.

\n", "signature": "(self) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.get_job": {"fullname": "wmill.client.Windmill.get_job", "modulename": "wmill.client", "qualname": "Windmill.get_job", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.get_root_job_id": {"fullname": "wmill.client.Windmill.get_root_job_id", "modulename": "wmill.client", "qualname": "Windmill.get_root_job_id", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str | None = None) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.get_id_token": {"fullname": "wmill.client.Windmill.get_id_token", "modulename": "wmill.client", "qualname": "Windmill.get_id_token", "kind": "function", "doc": "

\n", "signature": "(self, audience: str, expires_in: int | None = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.get_job_status": {"fullname": "wmill.client.Windmill.get_job_status", "modulename": "wmill.client", "qualname": "Windmill.get_job_status", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str) -> Literal['RUNNING', 'WAITING', 'COMPLETED']:", "funcdef": "def"}, "wmill.client.Windmill.get_result": {"fullname": "wmill.client.Windmill.get_result", "modulename": "wmill.client", "qualname": "Windmill.get_result", "kind": "function", "doc": "

\n", "signature": "(self, job_id: str, assert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.get_variable": {"fullname": "wmill.client.Windmill.get_variable", "modulename": "wmill.client", "qualname": "Windmill.get_variable", "kind": "function", "doc": "

\n", "signature": "(self, path: str) -> str:", "funcdef": "def"}, "wmill.client.Windmill.set_variable": {"fullname": "wmill.client.Windmill.set_variable", "modulename": "wmill.client", "qualname": "Windmill.set_variable", "kind": "function", "doc": "

\n", "signature": "(self, path: str, value: str, is_secret: bool = False) -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_resource": {"fullname": "wmill.client.Windmill.get_resource", "modulename": "wmill.client", "qualname": "Windmill.get_resource", "kind": "function", "doc": "

\n", "signature": "(self, path: str, none_if_undefined: bool = False) -> dict | None:", "funcdef": "def"}, "wmill.client.Windmill.set_resource": {"fullname": "wmill.client.Windmill.set_resource", "modulename": "wmill.client", "qualname": "Windmill.set_resource", "kind": "function", "doc": "

\n", "signature": "(self, value: Any, path: str, resource_type: str):", "funcdef": "def"}, "wmill.client.Windmill.list_resources": {"fullname": "wmill.client.Windmill.list_resources", "modulename": "wmill.client", "qualname": "Windmill.list_resources", "kind": "function", "doc": "

List resources from Windmill workspace.

\n\n

Args:\n resource_type: Optional resource type to filter by (e.g., \"postgresql\", \"mysql\", \"s3\")\n page: Optional page number for pagination\n per_page: Optional number of results per page

\n\n

Returns:\n List of resource dictionaries

\n", "signature": "(\tself,\tresource_type: str = None,\tpage: int = None,\tper_page: int = None) -> list[dict]:", "funcdef": "def"}, "wmill.client.Windmill.set_state": {"fullname": "wmill.client.Windmill.set_state", "modulename": "wmill.client", "qualname": "Windmill.set_state", "kind": "function", "doc": "

\n", "signature": "(self, value: Any):", "funcdef": "def"}, "wmill.client.Windmill.set_progress": {"fullname": "wmill.client.Windmill.set_progress", "modulename": "wmill.client", "qualname": "Windmill.set_progress", "kind": "function", "doc": "

\n", "signature": "(self, value: int, job_id: Optional[str] = None):", "funcdef": "def"}, "wmill.client.Windmill.get_progress": {"fullname": "wmill.client.Windmill.get_progress", "modulename": "wmill.client", "qualname": "Windmill.get_progress", "kind": "function", "doc": "

\n", "signature": "(self, job_id: Optional[str] = None) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.set_flow_user_state": {"fullname": "wmill.client.Windmill.set_flow_user_state", "modulename": "wmill.client", "qualname": "Windmill.set_flow_user_state", "kind": "function", "doc": "

Set the user state of a flow at a given key

\n", "signature": "(self, key: str, value: Any) -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_flow_user_state": {"fullname": "wmill.client.Windmill.get_flow_user_state", "modulename": "wmill.client", "qualname": "Windmill.get_flow_user_state", "kind": "function", "doc": "

Get the user state of a flow at a given key

\n", "signature": "(self, key: str) -> Any:", "funcdef": "def"}, "wmill.client.Windmill.version": {"fullname": "wmill.client.Windmill.version", "modulename": "wmill.client", "qualname": "Windmill.version", "kind": "variable", "doc": "

\n"}, "wmill.client.Windmill.get_duckdb_connection_settings": {"fullname": "wmill.client.Windmill.get_duckdb_connection_settings", "modulename": "wmill.client", "qualname": "Windmill.get_duckdb_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from DuckDB

\n", "signature": "(\tself,\ts3_resource_path: str = '') -> wmill.s3_types.DuckDbConnectionSettings | None:", "funcdef": "def"}, "wmill.client.Windmill.get_polars_connection_settings": {"fullname": "wmill.client.Windmill.get_polars_connection_settings", "modulename": "wmill.client", "qualname": "Windmill.get_polars_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from Polars

\n", "signature": "(\tself,\ts3_resource_path: str = '') -> wmill.s3_types.PolarsConnectionSettings:", "funcdef": "def"}, "wmill.client.Windmill.get_boto3_connection_settings": {"fullname": "wmill.client.Windmill.get_boto3_connection_settings", "modulename": "wmill.client", "qualname": "Windmill.get_boto3_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection using boto3

\n", "signature": "(\tself,\ts3_resource_path: str = '') -> wmill.s3_types.Boto3ConnectionSettings:", "funcdef": "def"}, "wmill.client.Windmill.load_s3_file": {"fullname": "wmill.client.Windmill.load_s3_file", "modulename": "wmill.client", "qualname": "Windmill.load_s3_file", "kind": "function", "doc": "

Load a file from the workspace s3 bucket and returns its content as bytes.

\n\n

'''python\nfrom wmill import S3Object

\n\n

s3_obj = S3Object(s3=\"/path/to/my_file.txt\")\nmy_obj_content = client.load_s3_file(s3_obj)\nfile_content = my_obj_content.decode(\"utf-8\")\n'''

\n", "signature": "(\tself,\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None) -> bytes:", "funcdef": "def"}, "wmill.client.Windmill.load_s3_file_reader": {"fullname": "wmill.client.Windmill.load_s3_file_reader", "modulename": "wmill.client", "qualname": "Windmill.load_s3_file_reader", "kind": "function", "doc": "

Load a file from the workspace s3 bucket and returns the bytes stream.

\n\n

'''python\nfrom wmill import S3Object

\n\n

s3_obj = S3Object(s3=\"/path/to/my_file.txt\")\nwith wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader:\n print(file_reader.read())\n'''

\n", "signature": "(\tself,\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None) -> _io.BufferedReader:", "funcdef": "def"}, "wmill.client.Windmill.write_s3_file": {"fullname": "wmill.client.Windmill.write_s3_file", "modulename": "wmill.client", "qualname": "Windmill.write_s3_file", "kind": "function", "doc": "

Write a file to the workspace S3 bucket

\n\n

'''python\nfrom wmill import S3Object

\n\n

s3_obj = S3Object(s3=\"/path/to/my_file.txt\")

\n\n

for an in memory bytes array:

\n\n

file_content = b'Hello Windmill!'\nclient.write_s3_file(s3_obj, file_content)

\n\n

for a file:

\n\n

with open(\"my_file.txt\", \"rb\") as my_file:\n client.write_s3_file(s3_obj, my_file)\n'''

\n", "signature": "(\tself,\ts3object: wmill.s3_types.S3Object | str | None,\tfile_content: _io.BufferedReader | bytes,\ts3_resource_path: str | None,\tcontent_type: str | None = None,\tcontent_disposition: str | None = None) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.Windmill.sign_s3_objects": {"fullname": "wmill.client.Windmill.sign_s3_objects", "modulename": "wmill.client", "qualname": "Windmill.sign_s3_objects", "kind": "function", "doc": "

\n", "signature": "(\tself,\ts3_objects: list[wmill.s3_types.S3Object | str]) -> list[wmill.s3_types.S3Object]:", "funcdef": "def"}, "wmill.client.Windmill.sign_s3_object": {"fullname": "wmill.client.Windmill.sign_s3_object", "modulename": "wmill.client", "qualname": "Windmill.sign_s3_object", "kind": "function", "doc": "

\n", "signature": "(\tself,\ts3_object: wmill.s3_types.S3Object | str) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"fullname": "wmill.client.Windmill.get_presigned_s3_public_urls", "modulename": "wmill.client", "qualname": "Windmill.get_presigned_s3_public_urls", "kind": "function", "doc": "

Generate presigned public URLs for an array of S3 objects.\nIf an S3 object is not signed yet, it will be signed first.

\n\n

Args:\n s3_objects: List of S3 objects to sign\n base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL)

\n\n

Returns:\n List of signed public URLs

\n\n

Example:

\n\n
\n
\n
\n

s3_objs = [S3Object(s3=\"/path/to/file1.txt\"), S3Object(s3=\"/path/to/file2.txt\")]\n urls = client.get_presigned_s3_public_urls(s3_objs)

\n
\n
\n
\n", "signature": "(\tself,\ts3_objects: list[wmill.s3_types.S3Object | str],\tbase_url: str | None = None) -> list[str]:", "funcdef": "def"}, "wmill.client.Windmill.get_presigned_s3_public_url": {"fullname": "wmill.client.Windmill.get_presigned_s3_public_url", "modulename": "wmill.client", "qualname": "Windmill.get_presigned_s3_public_url", "kind": "function", "doc": "

Generate a presigned public URL for an S3 object.\nIf the S3 object is not signed yet, it will be signed first.

\n\n

Args:\n s3_object: S3 object to sign\n base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL)

\n\n

Returns:\n Signed public URL

\n\n

Example:

\n\n
\n
\n
\n

s3_obj = S3Object(s3=\"/path/to/file.txt\")\n url = client.get_presigned_s3_public_url(s3_obj)

\n
\n
\n
\n", "signature": "(\tself,\ts3_object: wmill.s3_types.S3Object | str,\tbase_url: str | None = None) -> str:", "funcdef": "def"}, "wmill.client.Windmill.whoami": {"fullname": "wmill.client.Windmill.whoami", "modulename": "wmill.client", "qualname": "Windmill.whoami", "kind": "function", "doc": "

\n", "signature": "(self) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.user": {"fullname": "wmill.client.Windmill.user", "modulename": "wmill.client", "qualname": "Windmill.user", "kind": "variable", "doc": "

\n", "annotation": ": dict"}, "wmill.client.Windmill.state_path": {"fullname": "wmill.client.Windmill.state_path", "modulename": "wmill.client", "qualname": "Windmill.state_path", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.client.Windmill.state": {"fullname": "wmill.client.Windmill.state", "modulename": "wmill.client", "qualname": "Windmill.state", "kind": "variable", "doc": "

\n", "annotation": ": Any"}, "wmill.client.Windmill.set_shared_state_pickle": {"fullname": "wmill.client.Windmill.set_shared_state_pickle", "modulename": "wmill.client", "qualname": "Windmill.set_shared_state_pickle", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path: str = 'state.pickle') -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_shared_state_pickle": {"fullname": "wmill.client.Windmill.get_shared_state_pickle", "modulename": "wmill.client", "qualname": "Windmill.get_shared_state_pickle", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path: str = 'state.pickle') -> Any:", "funcdef": "def"}, "wmill.client.Windmill.set_shared_state": {"fullname": "wmill.client.Windmill.set_shared_state", "modulename": "wmill.client", "qualname": "Windmill.set_shared_state", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path: str = 'state.json') -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_shared_state": {"fullname": "wmill.client.Windmill.get_shared_state", "modulename": "wmill.client", "qualname": "Windmill.get_shared_state", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path: str = 'state.json') -> None:", "funcdef": "def"}, "wmill.client.Windmill.get_resume_urls": {"fullname": "wmill.client.Windmill.get_resume_urls", "modulename": "wmill.client", "qualname": "Windmill.get_resume_urls", "kind": "function", "doc": "

\n", "signature": "(self, approver: str = None) -> dict:", "funcdef": "def"}, "wmill.client.Windmill.request_interactive_slack_approval": {"fullname": "wmill.client.Windmill.request_interactive_slack_approval", "modulename": "wmill.client", "qualname": "Windmill.request_interactive_slack_approval", "kind": "function", "doc": "

Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields.

\n\n

[Enterprise Edition Only] To include form fields in the Slack approval request, use the \"Advanced -> Suspend -> Form\" functionality.\nLearn more at: https://www.windmill.dev/docs/flows/flow_approval#form

\n\n
Parameters
\n\n
    \n
  • slack_resource_path: The path to the Slack resource in Windmill.
  • \n
  • channel_id: The Slack channel ID where the approval request will be sent.
  • \n
  • message: Optional custom message to include in the Slack approval request.
  • \n
  • approver: Optional user ID or name of the approver for the request.
  • \n
  • default_args_json: Optional dictionary defining or overriding the default arguments for form fields.
  • \n
  • dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields.
  • \n
\n\n
Raises
\n\n
    \n
  • Exception: If the function is not called within a flow or flow preview.
  • \n
  • Exception: If the required flow job or flow step environment variables are not set.
  • \n
\n\n
Returns
\n\n
\n

None

\n
\n\n

Usage Example:

\n\n
\n
\n
\n

client.request_interactive_slack_approval(\n ... slack_resource_path=\"/u/alex/my_slack_resource\",\n ... channel_id=\"admins-slack-channel\",\n ... message=\"Please approve this request\",\n ... approver=\"approver123\",\n ... default_args_json={\"key1\": \"value1\", \"key2\": 42},\n ... dynamic_enums_json={\"foo\": [\"choice1\", \"choice2\"], \"bar\": [\"optionA\", \"optionB\"]},\n ... )

\n
\n
\n
\n\n

Notes:

\n\n
    \n
  • This function must be executed within a Windmill flow or flow preview.
  • \n
  • The function checks for required environment variables (WM_FLOW_JOB_ID, WM_FLOW_STEP_ID) to ensure it is run in the appropriate context.
  • \n
\n", "signature": "(\tself,\tslack_resource_path: str,\tchannel_id: str,\tmessage: str = None,\tapprover: str = None,\tdefault_args_json: dict = None,\tdynamic_enums_json: dict = None) -> None:", "funcdef": "def"}, "wmill.client.Windmill.username_to_email": {"fullname": "wmill.client.Windmill.username_to_email", "modulename": "wmill.client", "qualname": "Windmill.username_to_email", "kind": "function", "doc": "

Get email from workspace username\nThis method is particularly useful for apps that require the email address of the viewer.\nIndeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.

\n", "signature": "(self, username: str) -> str:", "funcdef": "def"}, "wmill.client.Windmill.send_teams_message": {"fullname": "wmill.client.Windmill.send_teams_message", "modulename": "wmill.client", "qualname": "Windmill.send_teams_message", "kind": "function", "doc": "

Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message

\n", "signature": "(\tself,\tconversation_id: str,\ttext: str,\tsuccess: bool = True,\tcard_block: dict = None):", "funcdef": "def"}, "wmill.client.Windmill.datatable": {"fullname": "wmill.client.Windmill.datatable", "modulename": "wmill.client", "qualname": "Windmill.datatable", "kind": "function", "doc": "

\n", "signature": "(self, name: str = 'main'):", "funcdef": "def"}, "wmill.client.Windmill.ducklake": {"fullname": "wmill.client.Windmill.ducklake", "modulename": "wmill.client", "qualname": "Windmill.ducklake", "kind": "function", "doc": "

\n", "signature": "(self, name: str = 'main'):", "funcdef": "def"}, "wmill.client.init_global_client": {"fullname": "wmill.client.init_global_client", "modulename": "wmill.client", "qualname": "init_global_client", "kind": "function", "doc": "

\n", "signature": "(f):", "funcdef": "def"}, "wmill.client.deprecate": {"fullname": "wmill.client.deprecate", "modulename": "wmill.client", "qualname": "deprecate", "kind": "function", "doc": "

\n", "signature": "(in_favor_of: str):", "funcdef": "def"}, "wmill.client.get_workspace": {"fullname": "wmill.client.get_workspace", "modulename": "wmill.client", "qualname": "get_workspace", "kind": "function", "doc": "

\n", "signature": "() -> str:", "funcdef": "def"}, "wmill.client.get_root_job_id": {"fullname": "wmill.client.get_root_job_id", "modulename": "wmill.client", "qualname": "get_root_job_id", "kind": "function", "doc": "

\n", "signature": "(job_id: str | None = None) -> str:", "funcdef": "def"}, "wmill.client.get_version": {"fullname": "wmill.client.get_version", "modulename": "wmill.client", "qualname": "get_version", "kind": "function", "doc": "

\n", "signature": "() -> str:", "funcdef": "def"}, "wmill.client.run_script_async": {"fullname": "wmill.client.run_script_async", "modulename": "wmill.client", "qualname": "run_script_async", "kind": "function", "doc": "

\n", "signature": "(\thash_or_path: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: int = None) -> str:", "funcdef": "def"}, "wmill.client.run_flow_async": {"fullname": "wmill.client.run_flow_async", "modulename": "wmill.client", "qualname": "run_flow_async", "kind": "function", "doc": "

\n", "signature": "(\tpath: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: int = None,\tdo_not_track_in_parent: bool = True) -> str:", "funcdef": "def"}, "wmill.client.run_script_sync": {"fullname": "wmill.client.run_script_sync", "modulename": "wmill.client", "qualname": "run_script_sync", "kind": "function", "doc": "

\n", "signature": "(\thash: str,\targs: Dict[str, Any] = None,\tverbose: bool = False,\tassert_result_is_not_none: bool = True,\tcleanup: bool = True,\ttimeout: datetime.timedelta = None) -> Any:", "funcdef": "def"}, "wmill.client.run_script_by_path_async": {"fullname": "wmill.client.run_script_by_path_async", "modulename": "wmill.client", "qualname": "run_script_by_path_async", "kind": "function", "doc": "

\n", "signature": "(\tpath: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: Optional[int] = None) -> str:", "funcdef": "def"}, "wmill.client.run_script_by_hash_async": {"fullname": "wmill.client.run_script_by_hash_async", "modulename": "wmill.client", "qualname": "run_script_by_hash_async", "kind": "function", "doc": "

\n", "signature": "(\thash_: str,\targs: Dict[str, Any] = None,\tscheduled_in_secs: Optional[int] = None) -> str:", "funcdef": "def"}, "wmill.client.run_script_by_path_sync": {"fullname": "wmill.client.run_script_by_path_sync", "modulename": "wmill.client", "qualname": "run_script_by_path_sync", "kind": "function", "doc": "

\n", "signature": "(\tpath: str,\targs: Dict[str, Any] = None,\tverbose: bool = False,\tassert_result_is_not_none: bool = True,\tcleanup: bool = True,\ttimeout: datetime.timedelta = None) -> Any:", "funcdef": "def"}, "wmill.client.get_id_token": {"fullname": "wmill.client.get_id_token", "modulename": "wmill.client", "qualname": "get_id_token", "kind": "function", "doc": "

Get a JWT token for the given audience for OIDC purposes to login into third parties like AWS, Vault, GCP, etc.

\n", "signature": "(audience: str) -> str:", "funcdef": "def"}, "wmill.client.get_job_status": {"fullname": "wmill.client.get_job_status", "modulename": "wmill.client", "qualname": "get_job_status", "kind": "function", "doc": "

\n", "signature": "(job_id: str) -> Literal['RUNNING', 'WAITING', 'COMPLETED']:", "funcdef": "def"}, "wmill.client.get_result": {"fullname": "wmill.client.get_result", "modulename": "wmill.client", "qualname": "get_result", "kind": "function", "doc": "

\n", "signature": "(job_id: str, assert_result_is_not_none=True) -> Dict[str, Any]:", "funcdef": "def"}, "wmill.client.duckdb_connection_settings": {"fullname": "wmill.client.duckdb_connection_settings", "modulename": "wmill.client", "qualname": "duckdb_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from DuckDB

\n", "signature": "(s3_resource_path: str = '') -> wmill.s3_types.DuckDbConnectionSettings:", "funcdef": "def"}, "wmill.client.polars_connection_settings": {"fullname": "wmill.client.polars_connection_settings", "modulename": "wmill.client", "qualname": "polars_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection from Polars

\n", "signature": "(s3_resource_path: str = '') -> wmill.s3_types.PolarsConnectionSettings:", "funcdef": "def"}, "wmill.client.boto3_connection_settings": {"fullname": "wmill.client.boto3_connection_settings", "modulename": "wmill.client", "qualname": "boto3_connection_settings", "kind": "function", "doc": "

Convenient helpers that takes an S3 resource as input and returns the settings necessary to\ninitiate an S3 connection using boto3

\n", "signature": "(s3_resource_path: str = '') -> wmill.s3_types.Boto3ConnectionSettings:", "funcdef": "def"}, "wmill.client.load_s3_file": {"fullname": "wmill.client.load_s3_file", "modulename": "wmill.client", "qualname": "load_s3_file", "kind": "function", "doc": "

Load the entire content of a file stored in S3 as bytes

\n", "signature": "(\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None = None) -> bytes:", "funcdef": "def"}, "wmill.client.load_s3_file_reader": {"fullname": "wmill.client.load_s3_file_reader", "modulename": "wmill.client", "qualname": "load_s3_file_reader", "kind": "function", "doc": "

Load the content of a file stored in S3

\n", "signature": "(\ts3object: wmill.s3_types.S3Object | str,\ts3_resource_path: str | None = None) -> _io.BufferedReader:", "funcdef": "def"}, "wmill.client.write_s3_file": {"fullname": "wmill.client.write_s3_file", "modulename": "wmill.client", "qualname": "write_s3_file", "kind": "function", "doc": "

Upload a file to S3

\n\n

Content type will be automatically guessed from path extension if left empty

\n\n

See MDN for content_disposition: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition\nand content_type: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type

\n", "signature": "(\ts3object: wmill.s3_types.S3Object | str | None,\tfile_content: _io.BufferedReader | bytes,\ts3_resource_path: str | None = None,\tcontent_type: str | None = None,\tcontent_disposition: str | None = None) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.sign_s3_objects": {"fullname": "wmill.client.sign_s3_objects", "modulename": "wmill.client", "qualname": "sign_s3_objects", "kind": "function", "doc": "

Sign S3 objects to be used by anonymous users in public apps\nReturns a list of signed s3 tokens

\n", "signature": "(\ts3_objects: list[wmill.s3_types.S3Object | str]) -> list[wmill.s3_types.S3Object]:", "funcdef": "def"}, "wmill.client.sign_s3_object": {"fullname": "wmill.client.sign_s3_object", "modulename": "wmill.client", "qualname": "sign_s3_object", "kind": "function", "doc": "

Sign S3 object to be used by anonymous users in public apps\nReturns a signed s3 object

\n", "signature": "(s3_object: wmill.s3_types.S3Object | str) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.get_presigned_s3_public_urls": {"fullname": "wmill.client.get_presigned_s3_public_urls", "modulename": "wmill.client", "qualname": "get_presigned_s3_public_urls", "kind": "function", "doc": "

Generate presigned public URLs for an array of S3 objects.\nIf an S3 object is not signed yet, it will be signed first.

\n\n

Args:\n s3_objects: List of S3 objects to sign\n base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL)

\n\n

Returns:\n List of signed public URLs

\n\n

Example:

\n\n
\n
\n
\n

import wmill\n from wmill import S3Object\n s3_objs = [S3Object(s3=\"/path/to/file1.txt\"), S3Object(s3=\"/path/to/file2.txt\")]\n urls = wmill.get_presigned_s3_public_urls(s3_objs)

\n
\n
\n
\n", "signature": "(\ts3_objects: list[wmill.s3_types.S3Object | str],\tbase_url: str | None = None) -> list[str]:", "funcdef": "def"}, "wmill.client.get_presigned_s3_public_url": {"fullname": "wmill.client.get_presigned_s3_public_url", "modulename": "wmill.client", "qualname": "get_presigned_s3_public_url", "kind": "function", "doc": "

Generate a presigned public URL for an S3 object.\nIf the S3 object is not signed yet, it will be signed first.

\n\n

Args:\n s3_object: S3 object to sign\n base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL)

\n\n

Returns:\n Signed public URL

\n\n

Example:

\n\n
\n
\n
\n

import wmill\n from wmill import S3Object\n s3_obj = S3Object(s3=\"/path/to/file.txt\")\n url = wmill.get_presigned_s3_public_url(s3_obj)

\n
\n
\n
\n", "signature": "(\ts3_object: wmill.s3_types.S3Object | str,\tbase_url: str | None = None) -> str:", "funcdef": "def"}, "wmill.client.whoami": {"fullname": "wmill.client.whoami", "modulename": "wmill.client", "qualname": "whoami", "kind": "function", "doc": "

Returns the current user

\n", "signature": "() -> dict:", "funcdef": "def"}, "wmill.client.get_state": {"fullname": "wmill.client.get_state", "modulename": "wmill.client", "qualname": "get_state", "kind": "function", "doc": "

Get the state

\n", "signature": "() -> Any:", "funcdef": "def"}, "wmill.client.get_resource": {"fullname": "wmill.client.get_resource", "modulename": "wmill.client", "qualname": "get_resource", "kind": "function", "doc": "

Get resource from Windmill

\n", "signature": "(path: str, none_if_undefined: bool = False) -> dict | None:", "funcdef": "def"}, "wmill.client.set_resource": {"fullname": "wmill.client.set_resource", "modulename": "wmill.client", "qualname": "set_resource", "kind": "function", "doc": "

Set the resource at a given path as a string, creating it if it does not exist

\n", "signature": "(path: str, value: Any, resource_type: str = 'any') -> None:", "funcdef": "def"}, "wmill.client.list_resources": {"fullname": "wmill.client.list_resources", "modulename": "wmill.client", "qualname": "list_resources", "kind": "function", "doc": "

List resources from Windmill workspace.

\n\n

Args:\n resource_type: Optional resource type to filter by (e.g., \"postgresql\", \"mysql\", \"s3\")\n page: Optional page number for pagination\n per_page: Optional number of results per page

\n\n

Returns:\n List of resource dictionaries

\n\n

Example:

\n\n
\n
\n
\n

Get all resources

\n \n

all_resources = wmill.list_resources()

\n\n
>>> # Get only PostgreSQL resources\n>>> pg_resources = wmill.list_resources(resource_type=\"postgresql\")\n
\n
\n
\n
\n", "signature": "(\tresource_type: str = None,\tpage: int = None,\tper_page: int = None) -> list[dict]:", "funcdef": "def"}, "wmill.client.set_state": {"fullname": "wmill.client.set_state", "modulename": "wmill.client", "qualname": "set_state", "kind": "function", "doc": "

Set the state

\n", "signature": "(value: Any) -> None:", "funcdef": "def"}, "wmill.client.set_progress": {"fullname": "wmill.client.set_progress", "modulename": "wmill.client", "qualname": "set_progress", "kind": "function", "doc": "

Set the progress

\n", "signature": "(value: int, job_id: Optional[str] = None) -> None:", "funcdef": "def"}, "wmill.client.get_progress": {"fullname": "wmill.client.get_progress", "modulename": "wmill.client", "qualname": "get_progress", "kind": "function", "doc": "

Get the progress

\n", "signature": "(job_id: Optional[str] = None) -> Any:", "funcdef": "def"}, "wmill.client.set_shared_state_pickle": {"fullname": "wmill.client.set_shared_state_pickle", "modulename": "wmill.client", "qualname": "set_shared_state_pickle", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path='state.pickle') -> None:", "funcdef": "def"}, "wmill.client.get_shared_state_pickle": {"fullname": "wmill.client.get_shared_state_pickle", "modulename": "wmill.client", "qualname": "get_shared_state_pickle", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path='state.pickle') -> Any:", "funcdef": "def"}, "wmill.client.set_shared_state": {"fullname": "wmill.client.set_shared_state", "modulename": "wmill.client", "qualname": "set_shared_state", "kind": "function", "doc": "

Set the state in the shared folder using pickle

\n", "signature": "(value: Any, path='state.json') -> None:", "funcdef": "def"}, "wmill.client.get_shared_state": {"fullname": "wmill.client.get_shared_state", "modulename": "wmill.client", "qualname": "get_shared_state", "kind": "function", "doc": "

Get the state in the shared folder using pickle

\n", "signature": "(path='state.json') -> None:", "funcdef": "def"}, "wmill.client.get_variable": {"fullname": "wmill.client.get_variable", "modulename": "wmill.client", "qualname": "get_variable", "kind": "function", "doc": "

Returns the variable at a given path as a string

\n", "signature": "(path: str) -> str:", "funcdef": "def"}, "wmill.client.set_variable": {"fullname": "wmill.client.set_variable", "modulename": "wmill.client", "qualname": "set_variable", "kind": "function", "doc": "

Set the variable at a given path as a string, creating it if it does not exist

\n", "signature": "(path: str, value: str, is_secret: bool = False) -> None:", "funcdef": "def"}, "wmill.client.get_flow_user_state": {"fullname": "wmill.client.get_flow_user_state", "modulename": "wmill.client", "qualname": "get_flow_user_state", "kind": "function", "doc": "

Get the user state of a flow at a given key

\n", "signature": "(key: str) -> Any:", "funcdef": "def"}, "wmill.client.set_flow_user_state": {"fullname": "wmill.client.set_flow_user_state", "modulename": "wmill.client", "qualname": "set_flow_user_state", "kind": "function", "doc": "

Set the user state of a flow at a given key

\n", "signature": "(key: str, value: Any) -> None:", "funcdef": "def"}, "wmill.client.get_state_path": {"fullname": "wmill.client.get_state_path", "modulename": "wmill.client", "qualname": "get_state_path", "kind": "function", "doc": "

\n", "signature": "() -> str:", "funcdef": "def"}, "wmill.client.get_resume_urls": {"fullname": "wmill.client.get_resume_urls", "modulename": "wmill.client", "qualname": "get_resume_urls", "kind": "function", "doc": "

\n", "signature": "(approver: str = None) -> dict:", "funcdef": "def"}, "wmill.client.request_interactive_slack_approval": {"fullname": "wmill.client.request_interactive_slack_approval", "modulename": "wmill.client", "qualname": "request_interactive_slack_approval", "kind": "function", "doc": "

\n", "signature": "(\tslack_resource_path: str,\tchannel_id: str,\tmessage: str = None,\tapprover: str = None,\tdefault_args_json: dict = None,\tdynamic_enums_json: dict = None) -> None:", "funcdef": "def"}, "wmill.client.send_teams_message": {"fullname": "wmill.client.send_teams_message", "modulename": "wmill.client", "qualname": "send_teams_message", "kind": "function", "doc": "

\n", "signature": "(\tconversation_id: str,\ttext: str,\tsuccess: bool,\tcard_block: dict = None):", "funcdef": "def"}, "wmill.client.cancel_job": {"fullname": "wmill.client.cancel_job", "modulename": "wmill.client", "qualname": "cancel_job", "kind": "function", "doc": "

Cancel a specific job by ID.

\n\n

Args:\n job_id: UUID of the job to cancel\n reason: Optional reason for cancellation

\n\n

Returns:\n Response message from the cancel endpoint

\n", "signature": "(job_id: str, reason: str = None) -> str:", "funcdef": "def"}, "wmill.client.cancel_running": {"fullname": "wmill.client.cancel_running", "modulename": "wmill.client", "qualname": "cancel_running", "kind": "function", "doc": "

Cancel currently running executions of the same script.

\n", "signature": "() -> dict:", "funcdef": "def"}, "wmill.client.run_script": {"fullname": "wmill.client.run_script", "modulename": "wmill.client", "qualname": "run_script", "kind": "function", "doc": "

Run script synchronously and return its result.

\n\n

Deprecated since version Use run_script_by_path or run_script_by_hash instead..

\n", "signature": "(\tpath: str = None,\thash_: str = None,\targs: dict = None,\ttimeout: datetime.timedelta | int | float = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.run_script_by_path": {"fullname": "wmill.client.run_script_by_path", "modulename": "wmill.client", "qualname": "run_script_by_path", "kind": "function", "doc": "

Run script by path synchronously and return its result.

\n", "signature": "(\tpath: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.run_script_by_hash": {"fullname": "wmill.client.run_script_by_hash", "modulename": "wmill.client", "qualname": "run_script_by_hash", "kind": "function", "doc": "

Run script by hash synchronously and return its result.

\n", "signature": "(\thash_: str,\targs: dict = None,\ttimeout: datetime.timedelta | int | float = None,\tverbose: bool = False,\tcleanup: bool = True,\tassert_result_is_not_none: bool = True) -> Any:", "funcdef": "def"}, "wmill.client.run_inline_script_preview": {"fullname": "wmill.client.run_inline_script_preview", "modulename": "wmill.client", "qualname": "run_inline_script_preview", "kind": "function", "doc": "

Run a script on the current worker without creating a job

\n", "signature": "(content: str, language: str, args: dict = None) -> Any:", "funcdef": "def"}, "wmill.client.username_to_email": {"fullname": "wmill.client.username_to_email", "modulename": "wmill.client", "qualname": "username_to_email", "kind": "function", "doc": "

Get email from workspace username\nThis method is particularly useful for apps that require the email address of the viewer.\nIndeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.

\n", "signature": "(username: str) -> str:", "funcdef": "def"}, "wmill.client.datatable": {"fullname": "wmill.client.datatable", "modulename": "wmill.client", "qualname": "datatable", "kind": "function", "doc": "

\n", "signature": "(name: str = 'main') -> wmill.client.DataTableClient:", "funcdef": "def"}, "wmill.client.ducklake": {"fullname": "wmill.client.ducklake", "modulename": "wmill.client", "qualname": "ducklake", "kind": "function", "doc": "

\n", "signature": "(name: str = 'main') -> wmill.client.DucklakeClient:", "funcdef": "def"}, "wmill.client.task": {"fullname": "wmill.client.task", "modulename": "wmill.client", "qualname": "task", "kind": "function", "doc": "

\n", "signature": "(*args, **kwargs):", "funcdef": "def"}, "wmill.client.parse_resource_syntax": {"fullname": "wmill.client.parse_resource_syntax", "modulename": "wmill.client", "qualname": "parse_resource_syntax", "kind": "function", "doc": "

Parse resource syntax from string.

\n", "signature": "(s: str) -> Optional[str]:", "funcdef": "def"}, "wmill.client.parse_s3_object": {"fullname": "wmill.client.parse_s3_object", "modulename": "wmill.client", "qualname": "parse_s3_object", "kind": "function", "doc": "

Parse S3 object from string or S3Object format.

\n", "signature": "(s3_object: wmill.s3_types.S3Object | str) -> wmill.s3_types.S3Object:", "funcdef": "def"}, "wmill.client.parse_variable_syntax": {"fullname": "wmill.client.parse_variable_syntax", "modulename": "wmill.client", "qualname": "parse_variable_syntax", "kind": "function", "doc": "

Parse variable syntax from string.

\n", "signature": "(s: str) -> Optional[str]:", "funcdef": "def"}, "wmill.client.append_to_result_stream": {"fullname": "wmill.client.append_to_result_stream", "modulename": "wmill.client", "qualname": "append_to_result_stream", "kind": "function", "doc": "

Append a text to the result stream.

\n\n

Args:\n text: text to append to the result stream

\n", "signature": "(text: str) -> None:", "funcdef": "def"}, "wmill.client.stream_result": {"fullname": "wmill.client.stream_result", "modulename": "wmill.client", "qualname": "stream_result", "kind": "function", "doc": "

Stream to the result stream.

\n\n

Args:\n stream: stream to stream to the result stream

\n", "signature": "(stream) -> None:", "funcdef": "def"}, "wmill.client.DataTableClient": {"fullname": "wmill.client.DataTableClient", "modulename": "wmill.client", "qualname": "DataTableClient", "kind": "class", "doc": "

\n"}, "wmill.client.DataTableClient.__init__": {"fullname": "wmill.client.DataTableClient.__init__", "modulename": "wmill.client", "qualname": "DataTableClient.__init__", "kind": "function", "doc": "

\n", "signature": "(client: wmill.client.Windmill, name: str)"}, "wmill.client.DataTableClient.client": {"fullname": "wmill.client.DataTableClient.client", "modulename": "wmill.client", "qualname": "DataTableClient.client", "kind": "variable", "doc": "

\n"}, "wmill.client.DataTableClient.name": {"fullname": "wmill.client.DataTableClient.name", "modulename": "wmill.client", "qualname": "DataTableClient.name", "kind": "variable", "doc": "

\n"}, "wmill.client.DataTableClient.query": {"fullname": "wmill.client.DataTableClient.query", "modulename": "wmill.client", "qualname": "DataTableClient.query", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, *args):", "funcdef": "def"}, "wmill.client.DucklakeClient": {"fullname": "wmill.client.DucklakeClient", "modulename": "wmill.client", "qualname": "DucklakeClient", "kind": "class", "doc": "

\n"}, "wmill.client.DucklakeClient.__init__": {"fullname": "wmill.client.DucklakeClient.__init__", "modulename": "wmill.client", "qualname": "DucklakeClient.__init__", "kind": "function", "doc": "

\n", "signature": "(client: wmill.client.Windmill, name: str)"}, "wmill.client.DucklakeClient.client": {"fullname": "wmill.client.DucklakeClient.client", "modulename": "wmill.client", "qualname": "DucklakeClient.client", "kind": "variable", "doc": "

\n"}, "wmill.client.DucklakeClient.name": {"fullname": "wmill.client.DucklakeClient.name", "modulename": "wmill.client", "qualname": "DucklakeClient.name", "kind": "variable", "doc": "

\n"}, "wmill.client.DucklakeClient.query": {"fullname": "wmill.client.DucklakeClient.query", "modulename": "wmill.client", "qualname": "DucklakeClient.query", "kind": "function", "doc": "

\n", "signature": "(self, sql: str, **kwargs):", "funcdef": "def"}, "wmill.client.SqlQuery": {"fullname": "wmill.client.SqlQuery", "modulename": "wmill.client", "qualname": "SqlQuery", "kind": "class", "doc": "

\n"}, "wmill.client.SqlQuery.__init__": {"fullname": "wmill.client.SqlQuery.__init__", "modulename": "wmill.client", "qualname": "SqlQuery.__init__", "kind": "function", "doc": "

\n", "signature": "(sql: str, fetch_fn)"}, "wmill.client.SqlQuery.sql": {"fullname": "wmill.client.SqlQuery.sql", "modulename": "wmill.client", "qualname": "SqlQuery.sql", "kind": "variable", "doc": "

\n"}, "wmill.client.SqlQuery.fetch_fn": {"fullname": "wmill.client.SqlQuery.fetch_fn", "modulename": "wmill.client", "qualname": "SqlQuery.fetch_fn", "kind": "variable", "doc": "

\n"}, "wmill.client.SqlQuery.fetch": {"fullname": "wmill.client.SqlQuery.fetch", "modulename": "wmill.client", "qualname": "SqlQuery.fetch", "kind": "function", "doc": "

\n", "signature": "(self, result_collection: str | None = None):", "funcdef": "def"}, "wmill.client.SqlQuery.fetch_one": {"fullname": "wmill.client.SqlQuery.fetch_one", "modulename": "wmill.client", "qualname": "SqlQuery.fetch_one", "kind": "function", "doc": "

\n", "signature": "(self):", "funcdef": "def"}, "wmill.client.infer_sql_type": {"fullname": "wmill.client.infer_sql_type", "modulename": "wmill.client", "qualname": "infer_sql_type", "kind": "function", "doc": "

DuckDB executor requires explicit argument types at declaration\nThese types exist in both DuckDB and Postgres\nCheck that the types exist if you plan to extend this function for other SQL engines.

\n", "signature": "(value) -> str:", "funcdef": "def"}, "wmill.s3_reader": {"fullname": "wmill.s3_reader", "modulename": "wmill.s3_reader", "kind": "module", "doc": "

\n"}, "wmill.s3_reader.S3BufferedReader": {"fullname": "wmill.s3_reader.S3BufferedReader", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader", "kind": "class", "doc": "

Create a new buffered reader using the given readable raw IO object.

\n", "bases": "_io.BufferedReader"}, "wmill.s3_reader.S3BufferedReader.__init__": {"fullname": "wmill.s3_reader.S3BufferedReader.__init__", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.__init__", "kind": "function", "doc": "

\n", "signature": "(\tworkspace: str,\twindmill_client: httpx.Client,\tfile_key: str,\ts3_resource_path: Optional[str],\tstorage: Optional[str])"}, "wmill.s3_reader.S3BufferedReader.peek": {"fullname": "wmill.s3_reader.S3BufferedReader.peek", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.peek", "kind": "function", "doc": "

\n", "signature": "(self, size=0):", "funcdef": "def"}, "wmill.s3_reader.S3BufferedReader.read": {"fullname": "wmill.s3_reader.S3BufferedReader.read", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.read", "kind": "function", "doc": "

Read and return up to n bytes.

\n\n

If the size argument is omitted, None, or negative, read and\nreturn all data until EOF.

\n\n

If the size argument is positive, and the underlying raw stream is\nnot 'interactive', multiple raw reads may be issued to satisfy\nthe byte count (unless EOF is reached first).\nHowever, for interactive raw streams (as well as sockets and pipes),\nat most one raw read will be issued, and a short result does not\nimply that EOF is imminent.

\n\n

Return an empty bytes object on EOF.

\n\n

Return None if the underlying raw stream was open in non-blocking\nmode and no data is available at the moment.

\n", "signature": "(self, size=-1):", "funcdef": "def"}, "wmill.s3_reader.S3BufferedReader.read1": {"fullname": "wmill.s3_reader.S3BufferedReader.read1", "modulename": "wmill.s3_reader", "qualname": "S3BufferedReader.read1", "kind": "function", "doc": "

Read and return up to size bytes, with at most one read() call to the underlying raw stream.

\n\n

Return an empty bytes object on EOF.\nA short result does not imply that EOF is imminent.

\n", "signature": "(self, size=-1):", "funcdef": "def"}, "wmill.s3_reader.bytes_generator": {"fullname": "wmill.s3_reader.bytes_generator", "modulename": "wmill.s3_reader", "qualname": "bytes_generator", "kind": "function", "doc": "

\n", "signature": "(buffered_reader: Union[_io.BufferedReader, _io.BytesIO]):", "funcdef": "def"}, "wmill.s3_types": {"fullname": "wmill.s3_types", "modulename": "wmill.s3_types", "kind": "module", "doc": "

\n"}, "wmill.s3_types.S3Object": {"fullname": "wmill.s3_types.S3Object", "modulename": "wmill.s3_types", "qualname": "S3Object", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.S3Object.s3": {"fullname": "wmill.s3_types.S3Object.s3", "modulename": "wmill.s3_types", "qualname": "S3Object.s3", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3Object.storage": {"fullname": "wmill.s3_types.S3Object.storage", "modulename": "wmill.s3_types", "qualname": "S3Object.storage", "kind": "variable", "doc": "

\n", "annotation": ": Optional[str]"}, "wmill.s3_types.S3Object.presigned": {"fullname": "wmill.s3_types.S3Object.presigned", "modulename": "wmill.s3_types", "qualname": "S3Object.presigned", "kind": "variable", "doc": "

\n", "annotation": ": Optional[str]"}, "wmill.s3_types.S3FsClientKwargs": {"fullname": "wmill.s3_types.S3FsClientKwargs", "modulename": "wmill.s3_types", "qualname": "S3FsClientKwargs", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.S3FsClientKwargs.region_name": {"fullname": "wmill.s3_types.S3FsClientKwargs.region_name", "modulename": "wmill.s3_types", "qualname": "S3FsClientKwargs.region_name", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs": {"fullname": "wmill.s3_types.S3FsArgs", "modulename": "wmill.s3_types", "qualname": "S3FsArgs", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.S3FsArgs.endpoint_url": {"fullname": "wmill.s3_types.S3FsArgs.endpoint_url", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.endpoint_url", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs.key": {"fullname": "wmill.s3_types.S3FsArgs.key", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.key", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs.secret": {"fullname": "wmill.s3_types.S3FsArgs.secret", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.secret", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.S3FsArgs.use_ssl": {"fullname": "wmill.s3_types.S3FsArgs.use_ssl", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.use_ssl", "kind": "variable", "doc": "

\n", "annotation": ": bool"}, "wmill.s3_types.S3FsArgs.cache_regions": {"fullname": "wmill.s3_types.S3FsArgs.cache_regions", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.cache_regions", "kind": "variable", "doc": "

\n", "annotation": ": bool"}, "wmill.s3_types.S3FsArgs.client_kwargs": {"fullname": "wmill.s3_types.S3FsArgs.client_kwargs", "modulename": "wmill.s3_types", "qualname": "S3FsArgs.client_kwargs", "kind": "variable", "doc": "

\n", "annotation": ": wmill.s3_types.S3FsClientKwargs"}, "wmill.s3_types.StorageOptions": {"fullname": "wmill.s3_types.StorageOptions", "modulename": "wmill.s3_types", "qualname": "StorageOptions", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"fullname": "wmill.s3_types.StorageOptions.aws_endpoint_url", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_endpoint_url", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"fullname": "wmill.s3_types.StorageOptions.aws_access_key_id", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_access_key_id", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"fullname": "wmill.s3_types.StorageOptions.aws_secret_access_key", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_secret_access_key", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_region": {"fullname": "wmill.s3_types.StorageOptions.aws_region", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_region", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.StorageOptions.aws_allow_http": {"fullname": "wmill.s3_types.StorageOptions.aws_allow_http", "modulename": "wmill.s3_types", "qualname": "StorageOptions.aws_allow_http", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.PolarsConnectionSettings": {"fullname": "wmill.s3_types.PolarsConnectionSettings", "modulename": "wmill.s3_types", "qualname": "PolarsConnectionSettings", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"fullname": "wmill.s3_types.PolarsConnectionSettings.s3fs_args", "modulename": "wmill.s3_types", "qualname": "PolarsConnectionSettings.s3fs_args", "kind": "variable", "doc": "

\n", "annotation": ": wmill.s3_types.S3FsArgs"}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"fullname": "wmill.s3_types.PolarsConnectionSettings.storage_options", "modulename": "wmill.s3_types", "qualname": "PolarsConnectionSettings.storage_options", "kind": "variable", "doc": "

\n", "annotation": ": wmill.s3_types.StorageOptions"}, "wmill.s3_types.Boto3ConnectionSettings": {"fullname": "wmill.s3_types.Boto3ConnectionSettings", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.endpoint_url", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.endpoint_url", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.region_name", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.region_name", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.use_ssl", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.use_ssl", "kind": "variable", "doc": "

\n", "annotation": ": bool"}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.aws_access_key_id", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"fullname": "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key", "modulename": "wmill.s3_types", "qualname": "Boto3ConnectionSettings.aws_secret_access_key", "kind": "variable", "doc": "

\n", "annotation": ": str"}, "wmill.s3_types.DuckDbConnectionSettings": {"fullname": "wmill.s3_types.DuckDbConnectionSettings", "modulename": "wmill.s3_types", "qualname": "DuckDbConnectionSettings", "kind": "class", "doc": "

\n", "bases": "builtins.dict"}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"fullname": "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str", "modulename": "wmill.s3_types", "qualname": "DuckDbConnectionSettings.connection_settings_str", "kind": "variable", "doc": "

\n", "annotation": ": str"}}, "docInfo": {"wmill": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.logger": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 8, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.JobStatus": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 12, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 3}, "wmill.client.Windmill.base_url": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.token": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.headers": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.verify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.client": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.workspace": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.path": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.mocked_api": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_mocked_api": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_client": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "wmill.client.Windmill.get": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 3}, "wmill.client.Windmill.post": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 3}, "wmill.client.Windmill.create_token": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 3}, "wmill.client.Windmill.run_script_async": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 33}, "wmill.client.Windmill.run_script_by_path_async": {"qualname": 6, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 14}, "wmill.client.Windmill.run_script_by_hash_async": {"qualname": 6, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 65, "bases": 0, "doc": 14}, "wmill.client.Windmill.run_flow_async": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 86, "bases": 0, "doc": 12}, "wmill.client.Windmill.run_script": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 169, "bases": 0, "doc": 29}, "wmill.client.Windmill.run_script_by_path": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 12}, "wmill.client.Windmill.run_script_by_hash": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 144, "bases": 0, "doc": 12}, "wmill.client.Windmill.run_inline_script_preview": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 13}, "wmill.client.Windmill.wait_job": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 118, "bases": 0, "doc": 3}, "wmill.client.Windmill.cancel_job": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 34}, "wmill.client.Windmill.cancel_running": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_job": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_root_job_id": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_id_token": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_job_status": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_result": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_variable": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_variable": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_resource": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_resource": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 3}, "wmill.client.Windmill.list_resources": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 45}, "wmill.client.Windmill.set_state": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_progress": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_progress": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_flow_user_state": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 13}, "wmill.client.Windmill.get_flow_user_state": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 13}, "wmill.client.Windmill.version": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_duckdb_connection_settings": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 23}, "wmill.client.Windmill.get_polars_connection_settings": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 23}, "wmill.client.Windmill.get_boto3_connection_settings": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 49, "bases": 0, "doc": 23}, "wmill.client.Windmill.load_s3_file": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 62, "bases": 0, "doc": 52}, "wmill.client.Windmill.load_s3_file_reader": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 51}, "wmill.client.Windmill.write_s3_file": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 153, "bases": 0, "doc": 77}, "wmill.client.Windmill.sign_s3_objects": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "wmill.client.Windmill.sign_s3_object": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"qualname": 6, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 81, "bases": 0, "doc": 98}, "wmill.client.Windmill.get_presigned_s3_public_url": {"qualname": 6, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 88}, "wmill.client.Windmill.whoami": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "wmill.client.Windmill.user": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.state_path": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.state": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.Windmill.set_shared_state_pickle": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_shared_state_pickle": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 11}, "wmill.client.Windmill.set_shared_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_shared_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 11}, "wmill.client.Windmill.get_resume_urls": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "wmill.client.Windmill.request_interactive_slack_approval": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 116, "bases": 0, "doc": 344}, "wmill.client.Windmill.username_to_email": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 52}, "wmill.client.Windmill.send_teams_message": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 21}, "wmill.client.Windmill.datatable": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 3}, "wmill.client.Windmill.ducklake": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 3}, "wmill.client.init_global_client": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "wmill.client.deprecate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 18, "bases": 0, "doc": 3}, "wmill.client.get_workspace": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "wmill.client.get_root_job_id": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 3}, "wmill.client.get_version": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "wmill.client.run_script_async": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 3}, "wmill.client.run_flow_async": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 3}, "wmill.client.run_script_sync": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 3}, "wmill.client.run_script_by_path_async": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 76, "bases": 0, "doc": 3}, "wmill.client.run_script_by_hash_async": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "wmill.client.run_script_by_path_sync": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 3}, "wmill.client.get_id_token": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 24}, "wmill.client.get_job_status": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 50, "bases": 0, "doc": 3}, "wmill.client.get_result": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "wmill.client.duckdb_connection_settings": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 23}, "wmill.client.polars_connection_settings": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 23}, "wmill.client.boto3_connection_settings": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 23}, "wmill.client.load_s3_file": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 63, "bases": 0, "doc": 14}, "wmill.client.load_s3_file_reader": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 11}, "wmill.client.write_s3_file": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 154, "bases": 0, "doc": 45}, "wmill.client.sign_s3_objects": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 21}, "wmill.client.sign_s3_object": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 19}, "wmill.client.get_presigned_s3_public_urls": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 75, "bases": 0, "doc": 104}, "wmill.client.get_presigned_s3_public_url": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 63, "bases": 0, "doc": 94}, "wmill.client.whoami": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 6}, "wmill.client.get_state": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 5}, "wmill.client.get_resource": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 6}, "wmill.client.set_resource": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 19}, "wmill.client.list_resources": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 98}, "wmill.client.set_state": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 5}, "wmill.client.set_progress": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 5}, "wmill.client.get_progress": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 5}, "wmill.client.set_shared_state_pickle": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 11}, "wmill.client.get_shared_state_pickle": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 11}, "wmill.client.set_shared_state": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 11}, "wmill.client.get_shared_state": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 11}, "wmill.client.get_variable": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 12}, "wmill.client.set_variable": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 19}, "wmill.client.get_flow_user_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 13}, "wmill.client.set_flow_user_state": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 13}, "wmill.client.get_state_path": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 3}, "wmill.client.get_resume_urls": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "wmill.client.request_interactive_slack_approval": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 110, "bases": 0, "doc": 3}, "wmill.client.send_teams_message": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "wmill.client.cancel_job": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 37, "bases": 0, "doc": 34}, "wmill.client.cancel_running": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 11}, "wmill.client.run_script": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 157, "bases": 0, "doc": 29}, "wmill.client.run_script_by_path": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 12}, "wmill.client.run_script_by_hash": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 132, "bases": 0, "doc": 12}, "wmill.client.run_inline_script_preview": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 13}, "wmill.client.username_to_email": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 52}, "wmill.client.datatable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "wmill.client.ducklake": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "wmill.client.task": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "wmill.client.parse_resource_syntax": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 8}, "wmill.client.parse_s3_object": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 11}, "wmill.client.parse_variable_syntax": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 8}, "wmill.client.append_to_result_stream": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 21}, "wmill.client.stream_result": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 19}, "wmill.client.DataTableClient": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.DataTableClient.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "wmill.client.DataTableClient.client": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.DataTableClient.name": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.DataTableClient.query": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 3}, "wmill.client.DucklakeClient": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.DucklakeClient.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "wmill.client.DucklakeClient.client": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.DucklakeClient.name": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.DucklakeClient.query": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 3}, "wmill.client.SqlQuery": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.SqlQuery.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "wmill.client.SqlQuery.sql": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.SqlQuery.fetch_fn": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.client.SqlQuery.fetch": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 3}, "wmill.client.SqlQuery.fetch_one": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "wmill.client.infer_sql_type": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 35}, "wmill.s3_reader": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_reader.S3BufferedReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 15}, "wmill.s3_reader.S3BufferedReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 80, "bases": 0, "doc": 3}, "wmill.s3_reader.S3BufferedReader.peek": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "wmill.s3_reader.S3BufferedReader.read": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 126}, "wmill.s3_reader.S3BufferedReader.read1": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 41}, "wmill.s3_reader.bytes_generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 3}, "wmill.s3_types": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3Object": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.S3Object.s3": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3Object.storage": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3Object.presigned": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsClientKwargs": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.S3FsClientKwargs.region_name": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.S3FsArgs.endpoint_url": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.key": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.secret": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.use_ssl": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.cache_regions": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.S3FsArgs.client_kwargs": {"qualname": 3, "fullname": 6, "annotation": 5, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_region": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.StorageOptions.aws_allow_http": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.PolarsConnectionSettings": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"qualname": 3, "fullname": 6, "annotation": 5, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"qualname": 3, "fullname": 6, "annotation": 5, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "wmill.s3_types.DuckDbConnectionSettings": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}}, "length": 184, "save": true}, "index": {"qualname": {"root": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 8, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}}, "df": 66}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.whoami": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 6}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}}, "df": 6}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 6, "s": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 4}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2, "r": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 5, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}}, "df": 3, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.task": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.headers": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 4}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.verify": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.version": {"tf": 1}, "wmill.client.get_version": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 5}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.client.DataTableClient.client": {"tf": 1}, "wmill.client.DucklakeClient.client": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 6}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 4}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}}, "df": 8}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.post": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 5}}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}}, "df": 4}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 7}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 4}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 37}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.init_global_client": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 18, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 4}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}}, "df": 5, "s": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"1": {"docs": {"wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 1}, "docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 2}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}}, "df": 16, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 4}}}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 7}}}}}}}, "docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 16}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}, "e": {"docs": {"wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}}, "df": 18}}}, "r": {"docs": {"wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 6}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 14, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 4}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}}, "df": 2}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.SqlQuery.sql": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}}, "df": 2, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.SqlQuery": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.client.SqlQuery.sql": {"tf": 1}, "wmill.client.SqlQuery.fetch_fn": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.SqlQuery.fetch_one": {"tf": 1}}, "df": 6}}}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.SqlQuery.fetch_fn": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.SqlQuery.fetch_one": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {"wmill.client.SqlQuery.fetch_fn": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.DucklakeClient": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.client": {"tf": 1}, "wmill.client.DucklakeClient.name": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.datatable": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.DataTableClient": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DataTableClient.client": {"tf": 1}, "wmill.client.DataTableClient.name": {"tf": 1}, "wmill.client.DataTableClient.query": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.SqlQuery.fetch_one": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 3}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.DataTableClient.name": {"tf": 1}, "wmill.client.DucklakeClient.name": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 4}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.DataTableClient.query": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}}, "df": 2}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 5}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 1}}}}}}}}, "fullname": {"root": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill": {"tf": 1}, "wmill.client": {"tf": 1}, "wmill.client.logger": {"tf": 1}, "wmill.client.JobStatus": {"tf": 1}, "wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.datatable": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}, "wmill.client.task": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}, "wmill.client.DataTableClient": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DataTableClient.client": {"tf": 1}, "wmill.client.DataTableClient.name": {"tf": 1}, "wmill.client.DataTableClient.query": {"tf": 1}, "wmill.client.DucklakeClient": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.client": {"tf": 1}, "wmill.client.DucklakeClient.name": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}, "wmill.client.SqlQuery": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.client.SqlQuery.sql": {"tf": 1}, "wmill.client.SqlQuery.fetch_fn": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.SqlQuery.fetch_one": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}, "wmill.s3_types": {"tf": 1}, "wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 184}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}}, "df": 66}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 2}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.whoami": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client": {"tf": 1}, "wmill.client.logger": {"tf": 1}, "wmill.client.JobStatus": {"tf": 1}, "wmill.client.Windmill": {"tf": 1}, "wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.headers": {"tf": 1}, "wmill.client.Windmill.verify": {"tf": 1}, "wmill.client.Windmill.client": {"tf": 1.4142135623730951}, "wmill.client.Windmill.workspace": {"tf": 1}, "wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.version": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1.4142135623730951}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.datatable": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}, "wmill.client.task": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}, "wmill.client.DataTableClient": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DataTableClient.client": {"tf": 1.4142135623730951}, "wmill.client.DataTableClient.name": {"tf": 1}, "wmill.client.DataTableClient.query": {"tf": 1}, "wmill.client.DucklakeClient": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.client": {"tf": 1.4142135623730951}, "wmill.client.DucklakeClient.name": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}, "wmill.client.SqlQuery": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.client.SqlQuery.sql": {"tf": 1}, "wmill.client.SqlQuery.fetch_fn": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.SqlQuery.fetch_one": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 146}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 4}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 8, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.init_global_client": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 6}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}}, "df": 6}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.base_url": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 6, "s": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 4}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2, "r": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.user": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 5, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}}, "df": 3, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.token": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.task": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.s3_types": {"tf": 1}, "wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 31}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.headers": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 4}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.verify": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.version": {"tf": 1}, "wmill.client.get_version": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 5}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.path": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}}, "df": 8}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.post": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 5}}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}}, "df": 4}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {"wmill.client.Windmill.mocked_api": {"tf": 1}, "wmill.client.Windmill.get_mocked_api": {"tf": 1}}, "df": 2}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 7}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 4}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_version": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 37}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.init_global_client": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 18, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 4}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}}, "df": 5, "s": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"1": {"docs": {"wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 1}, "docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.s3_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 9}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}}, "df": 1}}}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}, "wmill.s3_types": {"tf": 1}, "wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1.4142135623730951}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 53, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 4}}}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 7}}}}}}}, "docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 16}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}, "e": {"docs": {"wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}}, "df": 18}}}, "r": {"docs": {"wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}}, "df": 6}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 14, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 7}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 4}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}}, "df": 2}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.SqlQuery.sql": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}}, "df": 2, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.SqlQuery": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.client.SqlQuery.sql": {"tf": 1}, "wmill.client.SqlQuery.fetch_fn": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.SqlQuery.fetch_one": {"tf": 1}}, "df": 6}}}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 2}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.SqlQuery.fetch_fn": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.SqlQuery.fetch_one": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {"wmill.client.SqlQuery.fetch_fn": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.DucklakeClient": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.client": {"tf": 1}, "wmill.client.DucklakeClient.name": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.datatable": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.DataTableClient": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DataTableClient.client": {"tf": 1}, "wmill.client.DataTableClient.name": {"tf": 1}, "wmill.client.DataTableClient.query": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.SqlQuery.fetch_one": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}}, "df": 3}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.DataTableClient.name": {"tf": 1}, "wmill.client.DucklakeClient.name": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}}, "df": 4}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.DataTableClient.query": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}}, "df": 2}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}}, "df": 5}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 1}}}}}}}}, "annotation": {"root": {"docs": {"wmill.client.Windmill.user": {"tf": 1}, "wmill.client.Windmill.state_path": {"tf": 1}, "wmill.client.Windmill.state": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 26, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.user": {"tf": 1}}, "df": 1}}}}, "s": {"3": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}}, "df": 1}}}}}}}, "docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.state_path": {"tf": 1}, "wmill.s3_types.S3Object.s3": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1}, "wmill.s3_types.S3FsArgs.key": {"tf": 1}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1}}, "df": 16}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.state": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_types.S3Object.storage": {"tf": 1}, "wmill.s3_types.S3Object.presigned": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1}}, "df": 3}}}}}}}, "default_value": {"root": {"docs": {"wmill.client.logger": {"tf": 1.4142135623730951}, "wmill.client.JobStatus": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.logger": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}, "x": {"2": {"7": {"docs": {"wmill.client.JobStatus": {"tf": 2.449489742783178}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.JobStatus": {"tf": 1}}, "df": 1}}}}}}}}}, "signature": {"root": {"0": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}}, "df": 1}, "1": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}, "3": {"9": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 2.449489742783178}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.datatable": {"tf": 1.4142135623730951}, "wmill.client.Windmill.ducklake": {"tf": 1.4142135623730951}, "wmill.client.get_job_status": {"tf": 2.449489742783178}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.datatable": {"tf": 1.4142135623730951}, "wmill.client.ducklake": {"tf": 1.4142135623730951}}, "df": 21}, "docs": {}, "df": 0}, "docs": {"wmill.client.Windmill.__init__": {"tf": 6}, "wmill.client.Windmill.get_mocked_api": {"tf": 4.123105625617661}, "wmill.client.Windmill.get_client": {"tf": 4}, "wmill.client.Windmill.get": {"tf": 5.830951894845301}, "wmill.client.Windmill.post": {"tf": 5.830951894845301}, "wmill.client.Windmill.create_token": {"tf": 5.916079783099616}, "wmill.client.Windmill.run_script_async": {"tf": 8.602325267042627}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 6.928203230275509}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 7.280109889280518}, "wmill.client.Windmill.run_flow_async": {"tf": 8.18535277187245}, "wmill.client.Windmill.run_script": {"tf": 11.74734012447073}, "wmill.client.Windmill.run_script_by_path": {"tf": 10.770329614269007}, "wmill.client.Windmill.run_script_by_hash": {"tf": 10.816653826391969}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 6.48074069840786}, "wmill.client.Windmill.wait_job": {"tf": 9.746794344808963}, "wmill.client.Windmill.cancel_job": {"tf": 5.830951894845301}, "wmill.client.Windmill.cancel_running": {"tf": 3.4641016151377544}, "wmill.client.Windmill.get_job": {"tf": 4.47213595499958}, "wmill.client.Windmill.get_root_job_id": {"tf": 5.5677643628300215}, "wmill.client.Windmill.get_id_token": {"tf": 6.244997998398398}, "wmill.client.Windmill.get_job_status": {"tf": 6.4031242374328485}, "wmill.client.Windmill.get_result": {"tf": 5.830951894845301}, "wmill.client.Windmill.get_variable": {"tf": 4.47213595499958}, "wmill.client.Windmill.set_variable": {"tf": 6.48074069840786}, "wmill.client.Windmill.get_resource": {"tf": 6.244997998398398}, "wmill.client.Windmill.set_resource": {"tf": 5.830951894845301}, "wmill.client.Windmill.list_resources": {"tf": 7.937253933193772}, "wmill.client.Windmill.set_state": {"tf": 4.242640687119285}, "wmill.client.Windmill.set_progress": {"tf": 6.082762530298219}, "wmill.client.Windmill.get_progress": {"tf": 5.5677643628300215}, "wmill.client.Windmill.set_flow_user_state": {"tf": 5.291502622129181}, "wmill.client.Windmill.get_flow_user_state": {"tf": 4.47213595499958}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 6.557438524302}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 6.164414002968976}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 6.164414002968976}, "wmill.client.Windmill.load_s3_file": {"tf": 7}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 7.3484692283495345}, "wmill.client.Windmill.write_s3_file": {"tf": 11}, "wmill.client.Windmill.sign_s3_objects": {"tf": 7.280109889280518}, "wmill.client.Windmill.sign_s3_object": {"tf": 6.557438524302}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 8.06225774829855}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 7.416198487095663}, "wmill.client.Windmill.whoami": {"tf": 3.4641016151377544}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 5.656854249492381}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 4.898979485566356}, "wmill.client.Windmill.set_shared_state": {"tf": 5.656854249492381}, "wmill.client.Windmill.get_shared_state": {"tf": 4.898979485566356}, "wmill.client.Windmill.get_resume_urls": {"tf": 5.0990195135927845}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 9.539392014169456}, "wmill.client.Windmill.username_to_email": {"tf": 4.47213595499958}, "wmill.client.Windmill.send_teams_message": {"tf": 7.681145747868608}, "wmill.client.Windmill.datatable": {"tf": 5.0990195135927845}, "wmill.client.Windmill.ducklake": {"tf": 5.0990195135927845}, "wmill.client.init_global_client": {"tf": 3.1622776601683795}, "wmill.client.deprecate": {"tf": 3.7416573867739413}, "wmill.client.get_workspace": {"tf": 3}, "wmill.client.get_root_job_id": {"tf": 5.196152422706632}, "wmill.client.get_version": {"tf": 3}, "wmill.client.run_script_async": {"tf": 7.54983443527075}, "wmill.client.run_flow_async": {"tf": 8.48528137423857}, "wmill.client.run_script_sync": {"tf": 10.295630140987}, "wmill.client.run_script_by_path_async": {"tf": 7.874007874011811}, "wmill.client.run_script_by_hash_async": {"tf": 7.937253933193772}, "wmill.client.run_script_by_path_sync": {"tf": 10.295630140987}, "wmill.client.get_id_token": {"tf": 4}, "wmill.client.get_job_status": {"tf": 6.082762530298219}, "wmill.client.get_result": {"tf": 5.830951894845301}, "wmill.client.duckdb_connection_settings": {"tf": 5.656854249492381}, "wmill.client.polars_connection_settings": {"tf": 5.656854249492381}, "wmill.client.boto3_connection_settings": {"tf": 5.656854249492381}, "wmill.client.load_s3_file": {"tf": 7.0710678118654755}, "wmill.client.load_s3_file_reader": {"tf": 7.416198487095663}, "wmill.client.write_s3_file": {"tf": 11.045361017187261}, "wmill.client.sign_s3_objects": {"tf": 6.928203230275509}, "wmill.client.sign_s3_object": {"tf": 6.082762530298219}, "wmill.client.get_presigned_s3_public_urls": {"tf": 7.745966692414834}, "wmill.client.get_presigned_s3_public_url": {"tf": 7.0710678118654755}, "wmill.client.whoami": {"tf": 3}, "wmill.client.get_state": {"tf": 3}, "wmill.client.get_resource": {"tf": 5.916079783099616}, "wmill.client.set_resource": {"tf": 6.324555320336759}, "wmill.client.list_resources": {"tf": 7.615773105863909}, "wmill.client.set_state": {"tf": 4}, "wmill.client.set_progress": {"tf": 5.916079783099616}, "wmill.client.get_progress": {"tf": 5.196152422706632}, "wmill.client.set_shared_state_pickle": {"tf": 5.0990195135927845}, "wmill.client.get_shared_state_pickle": {"tf": 4.242640687119285}, "wmill.client.set_shared_state": {"tf": 5.0990195135927845}, "wmill.client.get_shared_state": {"tf": 4.242640687119285}, "wmill.client.get_variable": {"tf": 4}, "wmill.client.set_variable": {"tf": 6.164414002968976}, "wmill.client.get_flow_user_state": {"tf": 4}, "wmill.client.set_flow_user_state": {"tf": 4.898979485566356}, "wmill.client.get_state_path": {"tf": 3}, "wmill.client.get_resume_urls": {"tf": 4.69041575982343}, "wmill.client.request_interactive_slack_approval": {"tf": 9.273618495495704}, "wmill.client.send_teams_message": {"tf": 6.928203230275509}, "wmill.client.cancel_job": {"tf": 5.477225575051661}, "wmill.client.cancel_running": {"tf": 3}, "wmill.client.run_script": {"tf": 11.313708498984761}, "wmill.client.run_script_by_path": {"tf": 10.295630140987}, "wmill.client.run_script_by_hash": {"tf": 10.344080432788601}, "wmill.client.run_inline_script_preview": {"tf": 6.164414002968976}, "wmill.client.username_to_email": {"tf": 4}, "wmill.client.datatable": {"tf": 5.656854249492381}, "wmill.client.ducklake": {"tf": 5.656854249492381}, "wmill.client.task": {"tf": 4.242640687119285}, "wmill.client.parse_resource_syntax": {"tf": 4.58257569495584}, "wmill.client.parse_s3_object": {"tf": 6.082762530298219}, "wmill.client.parse_variable_syntax": {"tf": 4.58257569495584}, "wmill.client.append_to_result_stream": {"tf": 4}, "wmill.client.stream_result": {"tf": 3.4641016151377544}, "wmill.client.DataTableClient.__init__": {"tf": 5.291502622129181}, "wmill.client.DataTableClient.query": {"tf": 4.898979485566356}, "wmill.client.DucklakeClient.__init__": {"tf": 5.291502622129181}, "wmill.client.DucklakeClient.query": {"tf": 4.898979485566356}, "wmill.client.SqlQuery.__init__": {"tf": 4}, "wmill.client.SqlQuery.fetch": {"tf": 5.385164807134504}, "wmill.client.SqlQuery.fetch_one": {"tf": 3.1622776601683795}, "wmill.client.infer_sql_type": {"tf": 3.4641016151377544}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 7.937253933193772}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 4.242640687119285}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 4.242640687119285}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 4.242640687119285}, "wmill.s3_reader.bytes_generator": {"tf": 5.830951894845301}}, "df": 125, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 5}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.Windmill.wait_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_sync": {"tf": 1.7320508075688772}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.run_script": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash": {"tf": 1.7320508075688772}}, "df": 18}}, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}, "docs": {}, "df": 0}}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "o": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 5}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 5}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_async": {"tf": 2}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script": {"tf": 2.449489742783178}, "wmill.client.Windmill.run_script_by_path": {"tf": 2}, "wmill.client.Windmill.run_script_by_hash": {"tf": 2}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_id_token": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1.4142135623730951}, "wmill.client.Windmill.list_resources": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 2.449489742783178}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1.4142135623730951}, "wmill.client.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_sync": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_sync": {"tf": 1.7320508075688772}, "wmill.client.get_result": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 2.6457513110645907}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.get_resource": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1.7320508075688772}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1.4142135623730951}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 2.23606797749979}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.run_script": {"tf": 2.23606797749979}, "wmill.client.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.run_inline_script_preview": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1.4142135623730951}}, "df": 67}}, "t": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 13}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.datatable": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}}, "df": 6}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_sync": {"tf": 1.4142135623730951}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_hash": {"tf": 1.4142135623730951}}, "df": 17}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 10}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 6, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1.4142135623730951}}, "df": 21}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.datatable": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1.4142135623730951}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}}, "df": 25}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 3}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.__init__": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}}, "df": 15}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_objects": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_object": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 22, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1.4142135623730951}}, "df": 15}}}}}}}, "docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.DataTableClient.query": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.SqlQuery.fetch_one": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 55}}, "c": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}, "r": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1.4142135623730951}, "wmill.client.Windmill.cancel_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_variable": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1.4142135623730951}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 2}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.get_workspace": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1.4142135623730951}, "wmill.client.get_version": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.run_flow_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_sync": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_sync": {"tf": 1.4142135623730951}, "wmill.client.get_id_token": {"tf": 1.4142135623730951}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1.4142135623730951}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 2}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.7320508075688772}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_variable": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.get_state_path": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 2}, "wmill.client.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.cancel_job": {"tf": 1.7320508075688772}, "wmill.client.run_script": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1.4142135623730951}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.datatable": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1.4142135623730951}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1}, "wmill.client.DataTableClient.query": {"tf": 1}, "wmill.client.DucklakeClient.__init__": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 2}}, "df": 100, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.stream_result": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 8}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.DataTableClient.query": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}, "wmill.client.SqlQuery.__init__": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.peek": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1.4142135623730951}}, "df": 10}}}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.sign_s3_object": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 5, "s": {"docs": {"wmill.client.Windmill.sign_s3_objects": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}}, "df": 4}}}}}}, "f": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}, "r": {"docs": {"wmill.client.run_script_async": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_mocked_api": {"tf": 1}, "wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.whoami": {"tf": 1}, "wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 36}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 2}}}}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.ducklake": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 10}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.datatable": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.create_token": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}}, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 4}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_client": {"tf": 1}, "wmill.client.datatable": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}, "wmill.client.DataTableClient.__init__": {"tf": 1.4142135623730951}, "wmill.client.DucklakeClient.__init__": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1.4142135623730951}}, "df": 6}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 9}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 4}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.SqlQuery.fetch": {"tf": 1}}, "df": 1}}}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_id_token": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.SqlQuery.fetch": {"tf": 1}}, "df": 12}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 19}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.bytes_generator": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"wmill.client.init_global_client": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 7}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1.4142135623730951}, "wmill.client.Windmill.wait_job": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 13}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.deprecate": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.SqlQuery.__init__": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"wmill.client.SqlQuery.__init__": {"tf": 1}}, "df": 1}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get": {"tf": 1}, "wmill.client.Windmill.post": {"tf": 1}, "wmill.client.task": {"tf": 1}, "wmill.client.DucklakeClient.query": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 5}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.get_variable": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1}}, "df": 42}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}}, "df": 4}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}, "wmill.client.task": {"tf": 1}, "wmill.client.DataTableClient.query": {"tf": 1}}, "df": 22}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 11}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_resource": {"tf": 1}, "wmill.client.Windmill.set_state": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1.4142135623730951}, "wmill.client.get_result": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_state": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 33}}, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.get_resume_urls": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.get_resume_urls": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 4}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.deprecate": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}}, "df": 10, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_id_token": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.run_script_async": {"tf": 1}, "wmill.client.run_flow_async": {"tf": 1}, "wmill.client.run_script_by_path_async": {"tf": 1}, "wmill.client.run_script_by_hash_async": {"tf": 1}, "wmill.client.list_resources": {"tf": 1.4142135623730951}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 20}}, "s": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_variable": {"tf": 1}, "wmill.client.run_script_sync": {"tf": 1}, "wmill.client.run_script_by_path_sync": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 13}, "d": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}, "wmill.client.send_teams_message": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 18}, "f": {"docs": {"wmill.client.Windmill.get_resource": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}}, "df": 2}, "o": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.bytes_generator": {"tf": 1.4142135623730951}}, "df": 5}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 1}}, "df": 6}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.wait_job": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.get_job": {"tf": 1}, "wmill.client.Windmill.get_root_job_id": {"tf": 1}, "wmill.client.Windmill.get_job_status": {"tf": 1}, "wmill.client.Windmill.get_result": {"tf": 1}, "wmill.client.Windmill.set_progress": {"tf": 1}, "wmill.client.Windmill.get_progress": {"tf": 1}, "wmill.client.get_root_job_id": {"tf": 1}, "wmill.client.get_job_status": {"tf": 1}, "wmill.client.get_result": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 14}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 6}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.request_interactive_slack_approval": {"tf": 1}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.datatable": {"tf": 1}, "wmill.client.Windmill.ducklake": {"tf": 1}, "wmill.client.datatable": {"tf": 1}, "wmill.client.ducklake": {"tf": 1}}, "df": 4}}}}}}, "bases": {"root": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}}, "df": 7}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_types.S3Object": {"tf": 1}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1}, "wmill.s3_types.S3FsArgs": {"tf": 1}, "wmill.s3_types.StorageOptions": {"tf": 1}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1}}, "df": 7}}}}}}, "doc": {"root": {"4": {"2": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}}, "df": 1}, "docs": {"wmill": {"tf": 1.7320508075688772}, "wmill.client": {"tf": 1.7320508075688772}, "wmill.client.logger": {"tf": 1.7320508075688772}, "wmill.client.JobStatus": {"tf": 1.7320508075688772}, "wmill.client.Windmill": {"tf": 1.7320508075688772}, "wmill.client.Windmill.__init__": {"tf": 1.7320508075688772}, "wmill.client.Windmill.base_url": {"tf": 1.7320508075688772}, "wmill.client.Windmill.token": {"tf": 1.7320508075688772}, "wmill.client.Windmill.headers": {"tf": 1.7320508075688772}, "wmill.client.Windmill.verify": {"tf": 1.7320508075688772}, "wmill.client.Windmill.client": {"tf": 1.7320508075688772}, "wmill.client.Windmill.workspace": {"tf": 1.7320508075688772}, "wmill.client.Windmill.path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.mocked_api": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_mocked_api": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_client": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get": {"tf": 1.7320508075688772}, "wmill.client.Windmill.post": {"tf": 1.7320508075688772}, "wmill.client.Windmill.create_token": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_async": {"tf": 2.8284271247461903}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_flow_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script": {"tf": 2.8284271247461903}, "wmill.client.Windmill.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1.4142135623730951}, "wmill.client.Windmill.wait_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.cancel_job": {"tf": 2.6457513110645907}, "wmill.client.Windmill.cancel_running": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_root_job_id": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_id_token": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_job_status": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_result": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_variable": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_variable": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_resource": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_resource": {"tf": 1.7320508075688772}, "wmill.client.Windmill.list_resources": {"tf": 2.6457513110645907}, "wmill.client.Windmill.set_state": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_progress": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_progress": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.version": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 3}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 3}, "wmill.client.Windmill.write_s3_file": {"tf": 4.242640687119285}, "wmill.client.Windmill.sign_s3_objects": {"tf": 1.7320508075688772}, "wmill.client.Windmill.sign_s3_object": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 5.0990195135927845}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 5}, "wmill.client.Windmill.whoami": {"tf": 1.7320508075688772}, "wmill.client.Windmill.user": {"tf": 1.7320508075688772}, "wmill.client.Windmill.state_path": {"tf": 1.7320508075688772}, "wmill.client.Windmill.state": {"tf": 1.7320508075688772}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_resume_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 10.862780491200215}, "wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.Windmill.datatable": {"tf": 1.7320508075688772}, "wmill.client.Windmill.ducklake": {"tf": 1.7320508075688772}, "wmill.client.init_global_client": {"tf": 1.7320508075688772}, "wmill.client.deprecate": {"tf": 1.7320508075688772}, "wmill.client.get_workspace": {"tf": 1.7320508075688772}, "wmill.client.get_root_job_id": {"tf": 1.7320508075688772}, "wmill.client.get_version": {"tf": 1.7320508075688772}, "wmill.client.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.run_flow_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_sync": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash_async": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path_sync": {"tf": 1.7320508075688772}, "wmill.client.get_id_token": {"tf": 1.7320508075688772}, "wmill.client.get_job_status": {"tf": 1.7320508075688772}, "wmill.client.get_result": {"tf": 1.7320508075688772}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 3.1622776601683795}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 5.0990195135927845}, "wmill.client.get_presigned_s3_public_url": {"tf": 5}, "wmill.client.whoami": {"tf": 1.4142135623730951}, "wmill.client.get_state": {"tf": 1.4142135623730951}, "wmill.client.get_resource": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 5.744562646538029}, "wmill.client.set_state": {"tf": 1.4142135623730951}, "wmill.client.set_progress": {"tf": 1.4142135623730951}, "wmill.client.get_progress": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_variable": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}, "wmill.client.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.get_state_path": {"tf": 1.7320508075688772}, "wmill.client.get_resume_urls": {"tf": 1.7320508075688772}, "wmill.client.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.send_teams_message": {"tf": 1.7320508075688772}, "wmill.client.cancel_job": {"tf": 2.6457513110645907}, "wmill.client.cancel_running": {"tf": 1.7320508075688772}, "wmill.client.run_script": {"tf": 2.8284271247461903}, "wmill.client.run_script_by_path": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_hash": {"tf": 1.7320508075688772}, "wmill.client.run_inline_script_preview": {"tf": 1.4142135623730951}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.datatable": {"tf": 1.7320508075688772}, "wmill.client.ducklake": {"tf": 1.7320508075688772}, "wmill.client.task": {"tf": 1.7320508075688772}, "wmill.client.parse_resource_syntax": {"tf": 1.7320508075688772}, "wmill.client.parse_s3_object": {"tf": 1.7320508075688772}, "wmill.client.parse_variable_syntax": {"tf": 1.7320508075688772}, "wmill.client.append_to_result_stream": {"tf": 2.23606797749979}, "wmill.client.stream_result": {"tf": 2.23606797749979}, "wmill.client.DataTableClient": {"tf": 1.7320508075688772}, "wmill.client.DataTableClient.__init__": {"tf": 1.7320508075688772}, "wmill.client.DataTableClient.client": {"tf": 1.7320508075688772}, "wmill.client.DataTableClient.name": {"tf": 1.7320508075688772}, "wmill.client.DataTableClient.query": {"tf": 1.7320508075688772}, "wmill.client.DucklakeClient": {"tf": 1.7320508075688772}, "wmill.client.DucklakeClient.__init__": {"tf": 1.7320508075688772}, "wmill.client.DucklakeClient.client": {"tf": 1.7320508075688772}, "wmill.client.DucklakeClient.name": {"tf": 1.7320508075688772}, "wmill.client.DucklakeClient.query": {"tf": 1.7320508075688772}, "wmill.client.SqlQuery": {"tf": 1.7320508075688772}, "wmill.client.SqlQuery.__init__": {"tf": 1.7320508075688772}, "wmill.client.SqlQuery.sql": {"tf": 1.7320508075688772}, "wmill.client.SqlQuery.fetch_fn": {"tf": 1.7320508075688772}, "wmill.client.SqlQuery.fetch": {"tf": 1.7320508075688772}, "wmill.client.SqlQuery.fetch_one": {"tf": 1.7320508075688772}, "wmill.client.infer_sql_type": {"tf": 1.7320508075688772}, "wmill.s3_reader": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.__init__": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.peek": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 3.872983346207417}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 2.449489742783178}, "wmill.s3_reader.bytes_generator": {"tf": 1.7320508075688772}, "wmill.s3_types": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object.s3": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object.storage": {"tf": 1.7320508075688772}, "wmill.s3_types.S3Object.presigned": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsClientKwargs": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsClientKwargs.region_name": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.endpoint_url": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.key": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.secret": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.use_ssl": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.cache_regions": {"tf": 1.7320508075688772}, "wmill.s3_types.S3FsArgs.client_kwargs": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_endpoint_url": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_access_key_id": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_secret_access_key": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_region": {"tf": 1.7320508075688772}, "wmill.s3_types.StorageOptions.aws_allow_http": {"tf": 1.7320508075688772}, "wmill.s3_types.PolarsConnectionSettings": {"tf": 1.7320508075688772}, "wmill.s3_types.PolarsConnectionSettings.s3fs_args": {"tf": 1.7320508075688772}, "wmill.s3_types.PolarsConnectionSettings.storage_options": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.endpoint_url": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.region_name": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.use_ssl": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.aws_access_key_id": {"tf": 1.7320508075688772}, "wmill.s3_types.Boto3ConnectionSettings.aws_secret_access_key": {"tf": 1.7320508075688772}, "wmill.s3_types.DuckDbConnectionSettings": {"tf": 1.7320508075688772}, "wmill.s3_types.DuckDbConnectionSettings.connection_settings_str": {"tf": 1.7320508075688772}}, "df": 184, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 4}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1.7320508075688772}, "wmill.client.cancel_running": {"tf": 1}}, "df": 4, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 2}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 2}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}}, "df": 5}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 5}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"1": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "2": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1.4142135623730951}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.get_variable": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}, "wmill.client.get_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.set_flow_user_state": {"tf": 1.4142135623730951}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1.4142135623730951}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 32, "n": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 14, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 23}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 14, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1}, "wmill.client.stream_result": {"tf": 1}}, "df": 11}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}}, "df": 3}}}, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "t": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 11}, "p": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}}, "df": 1, "#": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1, "r": {"1": {"2": {"3": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.list_resources": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"3": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file": {"tf": 2.23606797749979}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 2.23606797749979}, "wmill.client.Windmill.write_s3_file": {"tf": 2.6457513110645907}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 3}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 2.8284271247461903}, "wmill.client.duckdb_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.polars_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.boto3_connection_settings": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 3}, "wmill.client.get_presigned_s3_public_url": {"tf": 2.8284271247461903}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 21, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.7320508075688772}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.parse_s3_object": {"tf": 1}}, "df": 8}}}}}}}, "docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_script": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 13}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.7320508075688772}}, "df": 6}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 6}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}}, "df": 13, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "e": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 14}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}, "wmill.client.stream_result": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 5, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 6}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 2}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 3.1622776601683795}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_flow_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1.7320508075688772}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.cancel_job": {"tf": 1.7320508075688772}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 9}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 12, "s": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 21}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}, "wmill.client.stream_result": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 10, "s": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 2}, "wmill.client.parse_resource_syntax": {"tf": 1}}, "df": 13, "s": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 2.6457513110645907}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1.4142135623730951}, "wmill.client.cancel_job": {"tf": 1.4142135623730951}}, "df": 2}}}, "d": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.6457513110645907}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}, "s": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script": {"tf": 1.7320508075688772}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1.7320508075688772}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 10, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}}}, "b": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.23606797749979}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.set_resource": {"tf": 1.4142135623730951}, "wmill.client.set_variable": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 11}}, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.449489742783178}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1.4142135623730951}}, "df": 8}, "n": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 18, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "o": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}}, "df": 5}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.7320508075688772}}, "df": 10}, "s": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 10, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 4}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 3}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"1": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.run_script": {"tf": 1}}, "df": 4, "r": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1.7320508075688772}, "wmill.client.username_to_email": {"tf": 1.7320508075688772}}, "df": 2}}}}, "s": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 2}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}, "d": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 11}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "f": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 2.8284271247461903}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 2.8284271247461903}}, "df": 4, "s": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 2.23606797749979}, "wmill.client.get_presigned_s3_public_urls": {"tf": 2.23606797749979}}, "df": 2}}}, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1, "y": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1.4142135623730951}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.run_script": {"tf": 1.4142135623730951}, "wmill.client.run_script_by_path": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 15, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 6}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"3": {"docs": {"wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "h": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 9}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.7320508075688772}}, "df": 4}}, "r": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_path_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_path": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_path": {"tf": 1}}, "df": 12, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"1": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}}, "df": 2}, "2": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}}, "df": 2}, "docs": {"wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 2}}}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 2}, "wmill.client.list_resources": {"tf": 2}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1.7320508075688772}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 1.4142135623730951}}, "df": 2}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.7320508075688772}}, "df": 4}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}}, "df": 2}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.7320508075688772}}, "df": 6}}}}, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}, "g": {"docs": {"wmill.client.list_resources": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}, "wmill.client.run_script": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 6, "g": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 4, "l": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}, "f": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.Windmill.username_to_email": {"tf": 2}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.list_resources": {"tf": 1.4142135623730951}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.username_to_email": {"tf": 2}}, "df": 18}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1, "l": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.list_resources": {"tf": 1.7320508075688772}, "wmill.client.cancel_job": {"tf": 1}}, "df": 9}}, "b": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 2}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}}, "df": 5, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 2}, "wmill.client.sign_s3_object": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 2}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 9, "s": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}}, "df": 3}}}}, "s": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}}, "df": 2}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.run_script_async": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash_async": {"tf": 1}, "wmill.client.Windmill.run_script": {"tf": 1}, "wmill.client.Windmill.run_script_by_hash": {"tf": 1}, "wmill.client.run_script": {"tf": 1}, "wmill.client.run_script_by_hash": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"wmill.client.Windmill.run_flow_async": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.8284271247461903}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 6}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 16, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2.23606797749979}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.parse_s3_object": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.set_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.set_shared_state": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.set_shared_state": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}}, "df": 8}}}}, "o": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.parse_resource_syntax": {"tf": 1}, "wmill.client.parse_s3_object": {"tf": 1}, "wmill.client.parse_variable_syntax": {"tf": 1}}, "df": 20}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 2}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 2.23606797749979}, "wmill.client.Windmill.write_s3_file": {"tf": 3.1622776601683795}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}}, "df": 6}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 5}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.infer_sql_type": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.Windmill.cancel_job": {"tf": 1.4142135623730951}, "wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.Windmill.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 4}, "wmill.client.Windmill.username_to_email": {"tf": 2.8284271247461903}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.whoami": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_state": {"tf": 1}, "wmill.client.set_progress": {"tf": 1}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.set_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state_pickle": {"tf": 1.4142135623730951}, "wmill.client.set_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_shared_state": {"tf": 1.4142135623730951}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1.4142135623730951}, "wmill.client.cancel_running": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}, "wmill.client.username_to_email": {"tf": 2.8284271247461903}, "wmill.client.append_to_result_stream": {"tf": 1.4142135623730951}, "wmill.client.stream_result": {"tf": 1.4142135623730951}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 2.449489742783178}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 52, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 11}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1}}, "df": 4}, "r": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.sign_s3_object": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.append_to_result_stream": {"tf": 1.7320508075688772}, "wmill.client.stream_result": {"tf": 1.7320508075688772}, "wmill.client.infer_sql_type": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 28, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1, "s": {"docs": {"wmill.client.sign_s3_objects": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1.4142135623730951}, "wmill.client.write_s3_file": {"tf": 1.7320508075688772}, "wmill.client.list_resources": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {"wmill.client.infer_sql_type": {"tf": 1.7320508075688772}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 7}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.append_to_result_stream": {"tf": 1.7320508075688772}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 7}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"wmill.client.Windmill.load_s3_file_reader": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 4, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.run_inline_script_preview": {"tf": 1}, "wmill.client.run_inline_script_preview": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.7320508075688772}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 5}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.write_s3_file": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 7}}}, "m": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.Windmill.username_to_email": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1.4142135623730951}}, "df": 7, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.7320508075688772}, "wmill.client.get_presigned_s3_public_url": {"tf": 1.7320508075688772}, "wmill.client.list_resources": {"tf": 1.4142135623730951}}, "df": 6}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 2}, "wmill.client.Windmill.send_teams_message": {"tf": 1.4142135623730951}, "wmill.client.cancel_job": {"tf": 1}}, "df": 4}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.write_s3_file": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.write_s3_file": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"wmill.client.write_s3_file": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.send_teams_message": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "y": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.cancel_job": {"tf": 1}, "wmill.client.cancel_job": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.load_s3_file": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}}}, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.cancel_running": {"tf": 1}, "wmill.client.cancel_running": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 6}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.infer_sql_type": {"tf": 1.4142135623730951}}, "df": 3}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"wmill.client.Windmill.username_to_email": {"tf": 2}, "wmill.client.username_to_email": {"tf": 2}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.write_s3_file": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 2}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1.4142135623730951}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1.4142135623730951}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.sign_s3_objects": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 2}}, "df": 5}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.Windmill.load_s3_file": {"tf": 1.4142135623730951}, "wmill.client.Windmill.load_s3_file_reader": {"tf": 1.4142135623730951}, "wmill.client.load_s3_file": {"tf": 1}, "wmill.client.load_s3_file_reader": {"tf": 1}}, "df": 4}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1}, "wmill.client.list_resources": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.get_variable": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}, "wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 9}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.get_shared_state_pickle": {"tf": 1}, "wmill.client.Windmill.get_shared_state": {"tf": 1}, "wmill.client.Windmill.username_to_email": {"tf": 1}, "wmill.client.get_id_token": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_state": {"tf": 1}, "wmill.client.get_resource": {"tf": 1}, "wmill.client.list_resources": {"tf": 1.4142135623730951}, "wmill.client.get_progress": {"tf": 1}, "wmill.client.get_shared_state_pickle": {"tf": 1}, "wmill.client.get_shared_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.username_to_email": {"tf": 1}}, "df": 17}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 4}}}}}}}, "c": {"docs": {}, "df": 0, "p": {"docs": {"wmill.client.get_id_token": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"wmill.client.write_s3_file": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"wmill.client.list_resources": {"tf": 2.449489742783178}}, "df": 1}}, "n": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"wmill.client.Windmill.list_resources": {"tf": 1.4142135623730951}, "wmill.client.list_resources": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"wmill.client.Windmill.get_duckdb_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_polars_connection_settings": {"tf": 1}, "wmill.client.Windmill.get_boto3_connection_settings": {"tf": 1}, "wmill.client.duckdb_connection_settings": {"tf": 1}, "wmill.client.polars_connection_settings": {"tf": 1}, "wmill.client.boto3_connection_settings": {"tf": 1}}, "df": 6}}}}}}}, "w": {"docs": {"wmill.s3_reader.S3BufferedReader": {"tf": 1}}, "df": 1}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "t": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1.4142135623730951}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.set_resource": {"tf": 1}, "wmill.client.set_variable": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}, "wmill.s3_reader.S3BufferedReader.read1": {"tf": 1}}, "df": 9, "e": {"docs": {}, "df": 0, "s": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"wmill.s3_reader.S3BufferedReader.read": {"tf": 1}}, "df": 1, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}, "wmill.s3_reader.S3BufferedReader.read": {"tf": 1.4142135623730951}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"1": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "2": {"docs": {"wmill.client.Windmill.request_interactive_slack_approval": {"tf": 1}}, "df": 1}, "docs": {"wmill.client.Windmill.set_flow_user_state": {"tf": 1}, "wmill.client.Windmill.get_flow_user_state": {"tf": 1}, "wmill.client.get_flow_user_state": {"tf": 1}, "wmill.client.set_flow_user_state": {"tf": 1}}, "df": 4}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"wmill.client.Windmill.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.Windmill.get_presigned_s3_public_url": {"tf": 1}, "wmill.client.get_presigned_s3_public_urls": {"tf": 1}, "wmill.client.get_presigned_s3_public_url": {"tf": 1}}, "df": 4}}, "o": {"docs": {}, "df": 0, "u": {"docs": {"wmill.client.infer_sql_type": {"tf": 1}}, "df": 1}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/python-client/docs/wmill.html b/python-client/docs/wmill.html index fafe32ad0b..29d253afde 100644 --- a/python-client/docs/wmill.html +++ b/python-client/docs/wmill.html @@ -3,14 +3,14 @@ - + wmill API documentation - + diff --git a/python-client/docs/wmill/client.html b/python-client/docs/wmill/client.html index aea20f915b..c6f74d4606 100644 --- a/python-client/docs/wmill/client.html +++ b/python-client/docs/wmill/client.html @@ -3,14 +3,14 @@ - + wmill.client API documentation - + @@ -671,1271 +773,1611 @@ 276 cleanup=cleanup, assert_result_is_not_none=assert_result_is_not_none 277 ) 278 - 279 def wait_job( + 279 def run_inline_script_preview( 280 self, - 281 job_id, - 282 timeout: dt.timedelta | int | float | None = None, - 283 verbose: bool = False, - 284 cleanup: bool = True, - 285 assert_result_is_not_none: bool = False, - 286 ): - 287 def cancel_job(): - 288 logger.warning(f"cancelling job: {job_id}") - 289 self.post( - 290 f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}", - 291 json={"reason": "parent script cancelled"}, - 292 ).raise_for_status() + 281 content: str, + 282 language: str, + 283 args: dict = None, + 284 ) -> Any: + 285 """Run a script on the current worker without creating a job""" + 286 endpoint = f"/w/{self.workspace}/jobs/run_inline/preview" + 287 body = { + 288 "content": content, + 289 "language": language, + 290 "args": args or {}, + 291 } + 292 return self.post(endpoint, json=body).text 293 - 294 if cleanup: - 295 atexit.register(cancel_job) - 296 - 297 start_time = time.time() - 298 - 299 if isinstance(timeout, dt.timedelta): - 300 timeout = timeout.total_seconds() - 301 - 302 while True: - 303 result_res = self.get( - 304 f"/w/{self.workspace}/jobs_u/completed/get_result_maybe/{job_id}", True - 305 ).json() - 306 - 307 started = result_res["started"] - 308 completed = result_res["completed"] - 309 success = result_res["success"] - 310 - 311 if not started and verbose: - 312 logger.info(f"job {job_id} has not started yet") + 294 def wait_job( + 295 self, + 296 job_id, + 297 timeout: dt.timedelta | int | float | None = None, + 298 verbose: bool = False, + 299 cleanup: bool = True, + 300 assert_result_is_not_none: bool = False, + 301 ): + 302 def cancel_job(): + 303 logger.warning(f"cancelling job: {job_id}") + 304 self.post( + 305 f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}", + 306 json={"reason": "parent script cancelled"}, + 307 ).raise_for_status() + 308 + 309 if cleanup: + 310 atexit.register(cancel_job) + 311 + 312 start_time = time.time() 313 - 314 if cleanup and completed: - 315 atexit.unregister(cancel_job) + 314 if isinstance(timeout, dt.timedelta): + 315 timeout = timeout.total_seconds() 316 - 317 if completed: - 318 result = result_res["result"] - 319 if success: - 320 if result is None and assert_result_is_not_none: - 321 raise Exception("Result was none") - 322 return result - 323 else: - 324 error = result["error"] - 325 raise Exception(f"Job {job_id} was not successful: {str(error)}") - 326 - 327 if timeout and ((time.time() - start_time) > timeout): - 328 msg = "reached timeout" - 329 logger.warning(msg) - 330 self.post( - 331 f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}", - 332 json={"reason": msg}, - 333 ) - 334 raise TimeoutError(msg) - 335 if verbose: - 336 logger.info(f"sleeping 0.5 seconds for {job_id = }") - 337 - 338 time.sleep(0.5) - 339 - 340 def cancel_running(self) -> dict: - 341 """Cancel currently running executions of the same script.""" - 342 logger.info("canceling running executions of this script") - 343 - 344 jobs = self.get( - 345 f"/w/{self.workspace}/jobs/list", - 346 params={ - 347 "running": "true", - 348 "script_path_exact": self.path, - 349 }, - 350 ).json() - 351 - 352 current_job_id = os.environ.get("WM_JOB_ID") - 353 - 354 logger.debug(f"{current_job_id = }") - 355 - 356 job_ids = [j["id"] for j in jobs if j["id"] != current_job_id] + 317 while True: + 318 result_res = self.get( + 319 f"/w/{self.workspace}/jobs_u/completed/get_result_maybe/{job_id}", True + 320 ).json() + 321 + 322 started = result_res["started"] + 323 completed = result_res["completed"] + 324 success = result_res["success"] + 325 + 326 if not started and verbose: + 327 logger.info(f"job {job_id} has not started yet") + 328 + 329 if cleanup and completed: + 330 atexit.unregister(cancel_job) + 331 + 332 if completed: + 333 result = result_res["result"] + 334 if success: + 335 if result is None and assert_result_is_not_none: + 336 raise Exception("Result was none") + 337 return result + 338 else: + 339 error = result["error"] + 340 raise Exception(f"Job {job_id} was not successful: {str(error)}") + 341 + 342 if timeout and ((time.time() - start_time) > timeout): + 343 msg = "reached timeout" + 344 logger.warning(msg) + 345 self.post( + 346 f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}", + 347 json={"reason": msg}, + 348 ) + 349 raise TimeoutError(msg) + 350 if verbose: + 351 logger.info(f"sleeping 0.5 seconds for {job_id = }") + 352 + 353 time.sleep(0.5) + 354 + 355 def cancel_job(self, job_id: str, reason: str = None) -> str: + 356 """Cancel a specific job by ID. 357 - 358 if job_ids: - 359 logger.info(f"cancelling the following job ids: {job_ids}") - 360 else: - 361 logger.info("no previous executions to cancel") - 362 - 363 result = {} - 364 - 365 for id_ in job_ids: - 366 result[id_] = self.post( - 367 f"/w/{self.workspace}/jobs_u/queue/cancel/{id_}", - 368 json={"reason": "killed by `cancel_running` method"}, - 369 ) - 370 - 371 return result - 372 - 373 def get_job(self, job_id: str) -> dict: - 374 return self.get(f"/w/{self.workspace}/jobs_u/get/{job_id}").json() + 358 Args: + 359 job_id: UUID of the job to cancel + 360 reason: Optional reason for cancellation + 361 + 362 Returns: + 363 Response message from the cancel endpoint + 364 """ + 365 logger.info(f"cancelling job: {job_id}") + 366 + 367 payload = {"reason": reason or "cancelled via cancel_job method"} + 368 + 369 response = self.post( + 370 f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}", + 371 json=payload, + 372 ) + 373 + 374 return response.text 375 - 376 def get_root_job_id(self, job_id: str | None = None) -> dict: - 377 job_id = job_id or os.environ.get("WM_JOB_ID") - 378 return self.get(f"/w/{self.workspace}/jobs_u/get_root_job_id/{job_id}").json() + 376 def cancel_running(self) -> dict: + 377 """Cancel currently running executions of the same script.""" + 378 logger.info("canceling running executions of this script") 379 - 380 def get_id_token(self, audience: str) -> str: - 381 return self.post(f"/w/{self.workspace}/oidc/token/{audience}").text - 382 - 383 def get_job_status(self, job_id: str) -> JobStatus: - 384 job = self.get_job(job_id) - 385 job_type = job.get("type", "") - 386 assert job_type, f"{job} is not a valid job" - 387 if job_type.lower() == "completedjob": - 388 return "COMPLETED" - 389 if job.get("running"): - 390 return "RUNNING" - 391 return "WAITING" - 392 - 393 def get_result( - 394 self, - 395 job_id: str, - 396 assert_result_is_not_none: bool = True, - 397 ) -> Any: - 398 result = self.get(f"/w/{self.workspace}/jobs_u/completed/get_result/{job_id}") - 399 result_text = result.text - 400 if assert_result_is_not_none and result_text is None: - 401 raise Exception(f"result is None for {job_id = }") - 402 try: - 403 return result.json() - 404 except JSONDecodeError: - 405 return result_text + 380 jobs = self.get( + 381 f"/w/{self.workspace}/jobs/list", + 382 params={ + 383 "running": "true", + 384 "script_path_exact": self.path, + 385 }, + 386 ).json() + 387 + 388 current_job_id = os.environ.get("WM_JOB_ID") + 389 + 390 logger.debug(f"{current_job_id = }") + 391 + 392 job_ids = [j["id"] for j in jobs if j["id"] != current_job_id] + 393 + 394 if job_ids: + 395 logger.info(f"cancelling the following job ids: {job_ids}") + 396 else: + 397 logger.info("no previous executions to cancel") + 398 + 399 result = {} + 400 + 401 for id_ in job_ids: + 402 result[id_] = self.post( + 403 f"/w/{self.workspace}/jobs_u/queue/cancel/{id_}", + 404 json={"reason": "killed by `cancel_running` method"}, + 405 ) 406 - 407 def get_variable(self, path: str) -> str: - 408 path = parse_variable_syntax(path) or path - 409 if self.mocked_api is not None: - 410 variables = self.mocked_api["variables"] - 411 try: - 412 result = variables[path] - 413 return result - 414 except KeyError: - 415 logger.info( - 416 f"MockedAPI present, but variable not found at {path}, falling back to real API" - 417 ) - 418 - 419 """Get variable from Windmill""" - 420 return self.get(f"/w/{self.workspace}/variables/get_value/{path}").json() + 407 return result + 408 + 409 def get_job(self, job_id: str) -> dict: + 410 return self.get(f"/w/{self.workspace}/jobs_u/get/{job_id}").json() + 411 + 412 def get_root_job_id(self, job_id: str | None = None) -> dict: + 413 job_id = job_id or os.environ.get("WM_JOB_ID") + 414 return self.get(f"/w/{self.workspace}/jobs_u/get_root_job_id/{job_id}").json() + 415 + 416 def get_id_token(self, audience: str, expires_in: int | None = None) -> str: + 417 params = {} + 418 if expires_in is not None: + 419 params["expires_in"] = expires_in + 420 return self.post(f"/w/{self.workspace}/oidc/token/{audience}", params=params).text 421 - 422 def set_variable(self, path: str, value: str, is_secret: bool = False) -> None: - 423 path = parse_variable_syntax(path) or path - 424 if self.mocked_api is not None: - 425 self.mocked_api["variables"][path] = value - 426 return - 427 - 428 """Set variable from Windmill""" - 429 # check if variable exists - 430 r = self.get( - 431 f"/w/{self.workspace}/variables/get/{path}", raise_for_status=False - 432 ) - 433 if r.status_code == 404: - 434 # create variable - 435 self.post( - 436 f"/w/{self.workspace}/variables/create", - 437 json={ - 438 "path": path, - 439 "value": value, - 440 "is_secret": is_secret, - 441 "description": "", - 442 }, - 443 ) - 444 else: - 445 # update variable - 446 self.post( - 447 f"/w/{self.workspace}/variables/update/{path}", - 448 json={"value": value}, - 449 ) - 450 - 451 def get_resource( - 452 self, - 453 path: str, - 454 none_if_undefined: bool = False, - 455 ) -> dict | None: - 456 path = parse_resource_syntax(path) or path - 457 if self.mocked_api is not None: - 458 resources = self.mocked_api["resources"] - 459 try: - 460 result = resources[path] - 461 return result - 462 except KeyError: - 463 # NOTE: should mocked_api respect `none_if_undefined`? - 464 if none_if_undefined: - 465 logger.info( - 466 f"resource not found at ${path}, but none_if_undefined is True, so returning None" - 467 ) - 468 return None - 469 logger.info( - 470 f"MockedAPI present, but resource not found at ${path}, falling back to real API" - 471 ) - 472 - 473 """Get resource from Windmill""" - 474 try: - 475 return self.get( - 476 f"/w/{self.workspace}/resources/get_value_interpolated/{path}" - 477 ).json() - 478 except Exception as e: - 479 if none_if_undefined: - 480 return None - 481 logger.error(e) - 482 raise e - 483 - 484 def set_resource( - 485 self, - 486 value: Any, - 487 path: str, - 488 resource_type: str, - 489 ): - 490 path = parse_resource_syntax(path) or path - 491 if self.mocked_api is not None: - 492 self.mocked_api["resources"][path] = value - 493 return - 494 - 495 # check if resource exists - 496 r = self.get( - 497 f"/w/{self.workspace}/resources/get/{path}", raise_for_status=False - 498 ) - 499 if r.status_code == 404: - 500 # create resource - 501 self.post( - 502 f"/w/{self.workspace}/resources/create", - 503 json={ - 504 "path": path, - 505 "value": value, - 506 "resource_type": resource_type, - 507 }, - 508 ) - 509 else: - 510 # update resource - 511 self.post( - 512 f"/w/{self.workspace}/resources/update_value/{path}", - 513 json={"value": value}, - 514 ) - 515 - 516 def set_state(self, value: Any): - 517 self.set_resource(value, path=self.state_path, resource_type="state") - 518 - 519 def set_progress(self, value: int, job_id: Optional[str] = None): - 520 workspace = get_workspace() - 521 flow_id = os.environ.get("WM_FLOW_JOB_ID") - 522 job_id = job_id or os.environ.get("WM_JOB_ID") - 523 - 524 if job_id != None: - 525 job = self.get_job(job_id) - 526 flow_id = job.get("parent_job") - 527 - 528 self.post( - 529 f"/w/{workspace}/job_metrics/set_progress/{job_id}", - 530 json={ - 531 "percent": value, - 532 "flow_job_id": flow_id or None, - 533 }, - 534 ) - 535 - 536 def get_progress(self, job_id: Optional[str] = None) -> Any: - 537 workspace = get_workspace() - 538 job_id = job_id or os.environ.get("WM_JOB_ID") - 539 - 540 r = self.get( - 541 f"/w/{workspace}/job_metrics/get_progress/{job_id}", - 542 ) - 543 if r.status_code == 404: - 544 print(f"Job {job_id} does not exist") - 545 return None - 546 else: - 547 return r.json() - 548 - 549 def set_flow_user_state(self, key: str, value: Any) -> None: - 550 """Set the user state of a flow at a given key""" - 551 flow_id = self.get_root_job_id() - 552 r = self.post( - 553 f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}", - 554 json=value, - 555 raise_for_status=False, - 556 ) - 557 if r.status_code == 404: - 558 print(f"Job {flow_id} does not exist or is not a flow") - 559 - 560 def get_flow_user_state(self, key: str) -> Any: - 561 """Get the user state of a flow at a given key""" - 562 flow_id = self.get_root_job_id() - 563 r = self.get( - 564 f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}", - 565 raise_for_status=False, - 566 ) - 567 if r.status_code == 404: - 568 print(f"Job {flow_id} does not exist or is not a flow") - 569 return None - 570 else: - 571 return r.json() - 572 - 573 @property - 574 def version(self): - 575 return self.get("version").text - 576 - 577 def get_duckdb_connection_settings( - 578 self, - 579 s3_resource_path: str = "", - 580 ) -> DuckDbConnectionSettings | None: - 581 """ - 582 Convenient helpers that takes an S3 resource as input and returns the settings necessary to - 583 initiate an S3 connection from DuckDB - 584 """ - 585 s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path - 586 try: - 587 raw_obj = self.post( - 588 f"/w/{self.workspace}/job_helpers/v2/duckdb_connection_settings", - 589 json={} - 590 if s3_resource_path == "" - 591 else {"s3_resource_path": s3_resource_path}, - 592 ).json() - 593 return DuckDbConnectionSettings(raw_obj) - 594 except JSONDecodeError as e: - 595 raise Exception( - 596 "Could not generate DuckDB S3 connection settings from the provided resource" - 597 ) from e - 598 - 599 def get_polars_connection_settings( - 600 self, - 601 s3_resource_path: str = "", - 602 ) -> PolarsConnectionSettings: - 603 """ - 604 Convenient helpers that takes an S3 resource as input and returns the settings necessary to - 605 initiate an S3 connection from Polars - 606 """ - 607 s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path - 608 try: - 609 raw_obj = self.post( - 610 f"/w/{self.workspace}/job_helpers/v2/polars_connection_settings", - 611 json={} - 612 if s3_resource_path == "" - 613 else {"s3_resource_path": s3_resource_path}, - 614 ).json() - 615 return PolarsConnectionSettings(raw_obj) - 616 except JSONDecodeError as e: - 617 raise Exception( - 618 "Could not generate Polars S3 connection settings from the provided resource" - 619 ) from e - 620 - 621 def get_boto3_connection_settings( - 622 self, - 623 s3_resource_path: str = "", - 624 ) -> Boto3ConnectionSettings: - 625 """ - 626 Convenient helpers that takes an S3 resource as input and returns the settings necessary to - 627 initiate an S3 connection using boto3 - 628 """ - 629 s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path - 630 try: - 631 s3_resource = self.post( - 632 f"/w/{self.workspace}/job_helpers/v2/s3_resource_info", - 633 json={} - 634 if s3_resource_path == "" - 635 else {"s3_resource_path": s3_resource_path}, - 636 ).json() - 637 return self.__boto3_connection_settings(s3_resource) - 638 except JSONDecodeError as e: - 639 raise Exception( - 640 "Could not generate Boto3 S3 connection settings from the provided resource" - 641 ) from e - 642 - 643 def load_s3_file(self, s3object: S3Object | str, s3_resource_path: str | None) -> bytes: - 644 """ - 645 Load a file from the workspace s3 bucket and returns its content as bytes. - 646 - 647 '''python - 648 from wmill import S3Object - 649 - 650 s3_obj = S3Object(s3="/path/to/my_file.txt") - 651 my_obj_content = client.load_s3_file(s3_obj) - 652 file_content = my_obj_content.decode("utf-8") - 653 ''' - 654 """ - 655 s3object = parse_s3_object(s3object) - 656 with self.load_s3_file_reader(s3object, s3_resource_path) as file_reader: - 657 return file_reader.read() - 658 - 659 def load_s3_file_reader( - 660 self, s3object: S3Object | str, s3_resource_path: str | None - 661 ) -> BufferedReader: - 662 """ - 663 Load a file from the workspace s3 bucket and returns the bytes stream. - 664 - 665 '''python - 666 from wmill import S3Object - 667 - 668 s3_obj = S3Object(s3="/path/to/my_file.txt") - 669 with wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader: - 670 print(file_reader.read()) - 671 ''' - 672 """ - 673 s3object = parse_s3_object(s3object) - 674 reader = S3BufferedReader( - 675 f"{self.workspace}", - 676 self.client, - 677 s3object["s3"], - 678 s3_resource_path, - 679 s3object["storage"] if "storage" in s3object else None, - 680 ) - 681 return reader - 682 - 683 def write_s3_file( - 684 self, - 685 s3object: S3Object | str | None, - 686 file_content: BufferedReader | bytes, - 687 s3_resource_path: str | None, - 688 content_type: str | None = None, - 689 content_disposition: str | None = None, - 690 ) -> S3Object: - 691 """ - 692 Write a file to the workspace S3 bucket - 693 - 694 '''python - 695 from wmill import S3Object - 696 - 697 s3_obj = S3Object(s3="/path/to/my_file.txt") - 698 - 699 # for an in memory bytes array: - 700 file_content = b'Hello Windmill!' - 701 client.write_s3_file(s3_obj, file_content) - 702 - 703 # for a file: - 704 with open("my_file.txt", "rb") as my_file: - 705 client.write_s3_file(s3_obj, my_file) - 706 ''' - 707 """ - 708 s3object = parse_s3_object(s3object) - 709 # httpx accepts either bytes or "a bytes generator" as content. If it's a BufferedReader, we need to convert it to a generator - 710 if isinstance(file_content, BufferedReader): - 711 content_payload = bytes_generator(file_content) - 712 elif isinstance(file_content, bytes): - 713 content_payload = file_content - 714 else: - 715 raise Exception("Type of file_content not supported") - 716 - 717 query_params = {} - 718 if s3object is not None and s3object["s3"] != "": - 719 query_params["file_key"] = s3object["s3"] - 720 if s3_resource_path is not None and s3_resource_path != "": - 721 query_params["s3_resource_path"] = s3_resource_path - 722 if ( - 723 s3object is not None - 724 and "storage" in s3object - 725 and s3object["storage"] is not None - 726 ): - 727 query_params["storage"] = s3object["storage"] - 728 if content_type is not None: - 729 query_params["content_type"] = content_type - 730 if content_disposition is not None: - 731 query_params["content_disposition"] = content_disposition + 422 def get_job_status(self, job_id: str) -> JobStatus: + 423 job = self.get_job(job_id) + 424 job_type = job.get("type", "") + 425 assert job_type, f"{job} is not a valid job" + 426 if job_type.lower() == "completedjob": + 427 return "COMPLETED" + 428 if job.get("running"): + 429 return "RUNNING" + 430 return "WAITING" + 431 + 432 def get_result( + 433 self, + 434 job_id: str, + 435 assert_result_is_not_none: bool = True, + 436 ) -> Any: + 437 result = self.get(f"/w/{self.workspace}/jobs_u/completed/get_result/{job_id}") + 438 result_text = result.text + 439 if assert_result_is_not_none and result_text is None: + 440 raise Exception(f"result is None for {job_id = }") + 441 try: + 442 return result.json() + 443 except JSONDecodeError: + 444 return result_text + 445 + 446 def get_variable(self, path: str) -> str: + 447 path = parse_variable_syntax(path) or path + 448 if self.mocked_api is not None: + 449 variables = self.mocked_api["variables"] + 450 try: + 451 result = variables[path] + 452 return result + 453 except KeyError: + 454 logger.info( + 455 f"MockedAPI present, but variable not found at {path}, falling back to real API" + 456 ) + 457 + 458 """Get variable from Windmill""" + 459 return self.get(f"/w/{self.workspace}/variables/get_value/{path}").json() + 460 + 461 def set_variable(self, path: str, value: str, is_secret: bool = False) -> None: + 462 path = parse_variable_syntax(path) or path + 463 if self.mocked_api is not None: + 464 self.mocked_api["variables"][path] = value + 465 return + 466 + 467 """Set variable from Windmill""" + 468 # check if variable exists + 469 r = self.get( + 470 f"/w/{self.workspace}/variables/get/{path}", raise_for_status=False + 471 ) + 472 if r.status_code == 404: + 473 # create variable + 474 self.post( + 475 f"/w/{self.workspace}/variables/create", + 476 json={ + 477 "path": path, + 478 "value": value, + 479 "is_secret": is_secret, + 480 "description": "", + 481 }, + 482 ) + 483 else: + 484 # update variable + 485 self.post( + 486 f"/w/{self.workspace}/variables/update/{path}", + 487 json={"value": value}, + 488 ) + 489 + 490 def get_resource( + 491 self, + 492 path: str, + 493 none_if_undefined: bool = False, + 494 ) -> dict | None: + 495 path = parse_resource_syntax(path) or path + 496 if self.mocked_api is not None: + 497 resources = self.mocked_api["resources"] + 498 try: + 499 result = resources[path] + 500 return result + 501 except KeyError: + 502 # NOTE: should mocked_api respect `none_if_undefined`? + 503 if none_if_undefined: + 504 logger.info( + 505 f"resource not found at ${path}, but none_if_undefined is True, so returning None" + 506 ) + 507 return None + 508 logger.info( + 509 f"MockedAPI present, but resource not found at ${path}, falling back to real API" + 510 ) + 511 + 512 """Get resource from Windmill""" + 513 try: + 514 return self.get( + 515 f"/w/{self.workspace}/resources/get_value_interpolated/{path}" + 516 ).json() + 517 except Exception as e: + 518 if none_if_undefined: + 519 return None + 520 logger.error(e) + 521 raise e + 522 + 523 def set_resource( + 524 self, + 525 value: Any, + 526 path: str, + 527 resource_type: str, + 528 ): + 529 path = parse_resource_syntax(path) or path + 530 if self.mocked_api is not None: + 531 self.mocked_api["resources"][path] = value + 532 return + 533 + 534 # check if resource exists + 535 r = self.get( + 536 f"/w/{self.workspace}/resources/get/{path}", raise_for_status=False + 537 ) + 538 if r.status_code == 404: + 539 # create resource + 540 self.post( + 541 f"/w/{self.workspace}/resources/create", + 542 json={ + 543 "path": path, + 544 "value": value, + 545 "resource_type": resource_type, + 546 }, + 547 ) + 548 else: + 549 # update resource + 550 self.post( + 551 f"/w/{self.workspace}/resources/update_value/{path}", + 552 json={"value": value}, + 553 ) + 554 + 555 def list_resources( + 556 self, + 557 resource_type: str = None, + 558 page: int = None, + 559 per_page: int = None, + 560 ) -> list[dict]: + 561 """List resources from Windmill workspace. + 562 + 563 Args: + 564 resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3") + 565 page: Optional page number for pagination + 566 per_page: Optional number of results per page + 567 + 568 Returns: + 569 List of resource dictionaries + 570 """ + 571 params = {} + 572 if resource_type is not None: + 573 params["resource_type"] = resource_type + 574 if page is not None: + 575 params["page"] = page + 576 if per_page is not None: + 577 params["per_page"] = per_page + 578 + 579 return self.get( + 580 f"/w/{self.workspace}/resources/list", + 581 params=params if params else None, + 582 ).json() + 583 + 584 def set_state(self, value: Any): + 585 self.set_resource(value, path=self.state_path, resource_type="state") + 586 + 587 def set_progress(self, value: int, job_id: Optional[str] = None): + 588 workspace = get_workspace() + 589 flow_id = os.environ.get("WM_FLOW_JOB_ID") + 590 job_id = job_id or os.environ.get("WM_JOB_ID") + 591 + 592 if job_id != None: + 593 job = self.get_job(job_id) + 594 flow_id = job.get("parent_job") + 595 + 596 self.post( + 597 f"/w/{workspace}/job_metrics/set_progress/{job_id}", + 598 json={ + 599 "percent": value, + 600 "flow_job_id": flow_id or None, + 601 }, + 602 ) + 603 + 604 def get_progress(self, job_id: Optional[str] = None) -> Any: + 605 workspace = get_workspace() + 606 job_id = job_id or os.environ.get("WM_JOB_ID") + 607 + 608 r = self.get( + 609 f"/w/{workspace}/job_metrics/get_progress/{job_id}", + 610 ) + 611 if r.status_code == 404: + 612 print(f"Job {job_id} does not exist") + 613 return None + 614 else: + 615 return r.json() + 616 + 617 def set_flow_user_state(self, key: str, value: Any) -> None: + 618 """Set the user state of a flow at a given key""" + 619 flow_id = self.get_root_job_id() + 620 r = self.post( + 621 f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}", + 622 json=value, + 623 raise_for_status=False, + 624 ) + 625 if r.status_code == 404: + 626 print(f"Job {flow_id} does not exist or is not a flow") + 627 + 628 def get_flow_user_state(self, key: str) -> Any: + 629 """Get the user state of a flow at a given key""" + 630 flow_id = self.get_root_job_id() + 631 r = self.get( + 632 f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}", + 633 raise_for_status=False, + 634 ) + 635 if r.status_code == 404: + 636 print(f"Job {flow_id} does not exist or is not a flow") + 637 return None + 638 else: + 639 return r.json() + 640 + 641 @property + 642 def version(self): + 643 return self.get("version").text + 644 + 645 def get_duckdb_connection_settings( + 646 self, + 647 s3_resource_path: str = "", + 648 ) -> DuckDbConnectionSettings | None: + 649 """ + 650 Convenient helpers that takes an S3 resource as input and returns the settings necessary to + 651 initiate an S3 connection from DuckDB + 652 """ + 653 s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path + 654 try: + 655 raw_obj = self.post( + 656 f"/w/{self.workspace}/job_helpers/v2/duckdb_connection_settings", + 657 json={} + 658 if s3_resource_path == "" + 659 else {"s3_resource_path": s3_resource_path}, + 660 ).json() + 661 return DuckDbConnectionSettings(raw_obj) + 662 except JSONDecodeError as e: + 663 raise Exception( + 664 "Could not generate DuckDB S3 connection settings from the provided resource" + 665 ) from e + 666 + 667 def get_polars_connection_settings( + 668 self, + 669 s3_resource_path: str = "", + 670 ) -> PolarsConnectionSettings: + 671 """ + 672 Convenient helpers that takes an S3 resource as input and returns the settings necessary to + 673 initiate an S3 connection from Polars + 674 """ + 675 s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path + 676 try: + 677 raw_obj = self.post( + 678 f"/w/{self.workspace}/job_helpers/v2/polars_connection_settings", + 679 json={} + 680 if s3_resource_path == "" + 681 else {"s3_resource_path": s3_resource_path}, + 682 ).json() + 683 return PolarsConnectionSettings(raw_obj) + 684 except JSONDecodeError as e: + 685 raise Exception( + 686 "Could not generate Polars S3 connection settings from the provided resource" + 687 ) from e + 688 + 689 def get_boto3_connection_settings( + 690 self, + 691 s3_resource_path: str = "", + 692 ) -> Boto3ConnectionSettings: + 693 """ + 694 Convenient helpers that takes an S3 resource as input and returns the settings necessary to + 695 initiate an S3 connection using boto3 + 696 """ + 697 s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path + 698 try: + 699 s3_resource = self.post( + 700 f"/w/{self.workspace}/job_helpers/v2/s3_resource_info", + 701 json={} + 702 if s3_resource_path == "" + 703 else {"s3_resource_path": s3_resource_path}, + 704 ).json() + 705 return self.__boto3_connection_settings(s3_resource) + 706 except JSONDecodeError as e: + 707 raise Exception( + 708 "Could not generate Boto3 S3 connection settings from the provided resource" + 709 ) from e + 710 + 711 def load_s3_file(self, s3object: S3Object | str, s3_resource_path: str | None) -> bytes: + 712 """ + 713 Load a file from the workspace s3 bucket and returns its content as bytes. + 714 + 715 '''python + 716 from wmill import S3Object + 717 + 718 s3_obj = S3Object(s3="/path/to/my_file.txt") + 719 my_obj_content = client.load_s3_file(s3_obj) + 720 file_content = my_obj_content.decode("utf-8") + 721 ''' + 722 """ + 723 s3object = parse_s3_object(s3object) + 724 with self.load_s3_file_reader(s3object, s3_resource_path) as file_reader: + 725 return file_reader.read() + 726 + 727 def load_s3_file_reader( + 728 self, s3object: S3Object | str, s3_resource_path: str | None + 729 ) -> BufferedReader: + 730 """ + 731 Load a file from the workspace s3 bucket and returns the bytes stream. 732 - 733 try: - 734 # need a vanilla client b/c content-type is not application/json here - 735 response = httpx.post( - 736 f"{self.base_url}/w/{self.workspace}/job_helpers/upload_s3_file", - 737 headers={ - 738 "Authorization": f"Bearer {self.token}", - 739 "Content-Type": "application/octet-stream", - 740 }, - 741 params=query_params, - 742 content=content_payload, - 743 verify=self.verify, - 744 timeout=None, - 745 ).json() - 746 except Exception as e: - 747 raise Exception("Could not write file to S3") from e - 748 return S3Object(s3=response["file_key"]) - 749 - 750 def sign_s3_objects(self, s3_objects: list[S3Object | str]) -> list[S3Object]: - 751 return self.post( - 752 f"/w/{self.workspace}/apps/sign_s3_objects", json={"s3_objects": list(map(parse_s3_object, s3_objects))} - 753 ).json() - 754 - 755 def sign_s3_object(self, s3_object: S3Object | str) -> S3Object: - 756 return self.post( - 757 f"/w/{self.workspace}/apps/sign_s3_objects", - 758 json={"s3_objects": [s3_object]}, - 759 ).json()[0] - 760 - 761 def __boto3_connection_settings(self, s3_resource) -> Boto3ConnectionSettings: - 762 endpoint_url_prefix = "https://" if s3_resource["useSSL"] else "http://" - 763 return Boto3ConnectionSettings( - 764 { - 765 "endpoint_url": "{}{}".format( - 766 endpoint_url_prefix, s3_resource["endPoint"] - 767 ), - 768 "region_name": s3_resource["region"], - 769 "use_ssl": s3_resource["useSSL"], - 770 "aws_access_key_id": s3_resource["accessKey"], - 771 "aws_secret_access_key": s3_resource["secretKey"], - 772 # no need for path_style here as boto3 is clever enough to determine which one to use - 773 } - 774 ) - 775 - 776 def whoami(self) -> dict: - 777 return self.get("/users/whoami").json() - 778 - 779 @property - 780 def user(self) -> dict: - 781 return self.whoami() - 782 - 783 @property - 784 def state_path(self) -> str: - 785 state_path = os.environ.get( - 786 "WM_STATE_PATH_NEW", os.environ.get("WM_STATE_PATH") - 787 ) - 788 if state_path is None: - 789 raise Exception("State path not found") - 790 return state_path - 791 - 792 @property - 793 def state(self) -> Any: - 794 return self.get_resource(path=self.state_path, none_if_undefined=True) - 795 - 796 @state.setter - 797 def state(self, value: Any) -> None: - 798 self.set_state(value) - 799 - 800 @staticmethod - 801 def set_shared_state_pickle(value: Any, path: str = "state.pickle") -> None: - 802 """ - 803 Set the state in the shared folder using pickle - 804 """ - 805 import pickle - 806 - 807 with open(f"/shared/{path}", "wb") as handle: - 808 pickle.dump(value, handle, protocol=pickle.HIGHEST_PROTOCOL) - 809 - 810 @staticmethod - 811 def get_shared_state_pickle(path: str = "state.pickle") -> Any: - 812 """ - 813 Get the state in the shared folder using pickle - 814 """ - 815 import pickle - 816 - 817 with open(f"/shared/{path}", "rb") as handle: - 818 return pickle.load(handle) - 819 - 820 @staticmethod - 821 def set_shared_state(value: Any, path: str = "state.json") -> None: - 822 """ - 823 Set the state in the shared folder using pickle - 824 """ - 825 import json - 826 - 827 with open(f"/shared/{path}", "w", encoding="utf-8") as f: - 828 json.dump(value, f, ensure_ascii=False, indent=4) - 829 - 830 @staticmethod - 831 def get_shared_state(path: str = "state.json") -> None: - 832 """ - 833 Get the state in the shared folder using pickle - 834 """ - 835 import json - 836 - 837 with open(f"/shared/{path}", "r", encoding="utf-8") as f: - 838 return json.load(f) - 839 - 840 def get_resume_urls(self, approver: str = None) -> dict: - 841 nonce = random.randint(0, 1000000000) - 842 job_id = os.environ.get("WM_JOB_ID") or "NO_ID" - 843 return self.get( - 844 f"/w/{self.workspace}/jobs/resume_urls/{job_id}/{nonce}", - 845 params={"approver": approver}, - 846 ).json() - 847 - 848 def request_interactive_slack_approval( - 849 self, - 850 slack_resource_path: str, - 851 channel_id: str, - 852 message: str = None, - 853 approver: str = None, - 854 default_args_json: dict = None, - 855 dynamic_enums_json: dict = None, - 856 ) -> None: - 857 """ - 858 Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields. + 733 '''python + 734 from wmill import S3Object + 735 + 736 s3_obj = S3Object(s3="/path/to/my_file.txt") + 737 with wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader: + 738 print(file_reader.read()) + 739 ''' + 740 """ + 741 s3object = parse_s3_object(s3object) + 742 reader = S3BufferedReader( + 743 f"{self.workspace}", + 744 self.client, + 745 s3object["s3"], + 746 s3_resource_path, + 747 s3object["storage"] if "storage" in s3object else None, + 748 ) + 749 return reader + 750 + 751 def write_s3_file( + 752 self, + 753 s3object: S3Object | str | None, + 754 file_content: BufferedReader | bytes, + 755 s3_resource_path: str | None, + 756 content_type: str | None = None, + 757 content_disposition: str | None = None, + 758 ) -> S3Object: + 759 """ + 760 Write a file to the workspace S3 bucket + 761 + 762 '''python + 763 from wmill import S3Object + 764 + 765 s3_obj = S3Object(s3="/path/to/my_file.txt") + 766 + 767 # for an in memory bytes array: + 768 file_content = b'Hello Windmill!' + 769 client.write_s3_file(s3_obj, file_content) + 770 + 771 # for a file: + 772 with open("my_file.txt", "rb") as my_file: + 773 client.write_s3_file(s3_obj, my_file) + 774 ''' + 775 """ + 776 s3object = parse_s3_object(s3object) + 777 # httpx accepts either bytes or "a bytes generator" as content. If it's a BufferedReader, we need to convert it to a generator + 778 if isinstance(file_content, BufferedReader): + 779 content_payload = bytes_generator(file_content) + 780 elif isinstance(file_content, bytes): + 781 content_payload = file_content + 782 else: + 783 raise Exception("Type of file_content not supported") + 784 + 785 query_params = {} + 786 if s3object is not None and s3object["s3"] != "": + 787 query_params["file_key"] = s3object["s3"] + 788 if s3_resource_path is not None and s3_resource_path != "": + 789 query_params["s3_resource_path"] = s3_resource_path + 790 if ( + 791 s3object is not None + 792 and "storage" in s3object + 793 and s3object["storage"] is not None + 794 ): + 795 query_params["storage"] = s3object["storage"] + 796 if content_type is not None: + 797 query_params["content_type"] = content_type + 798 if content_disposition is not None: + 799 query_params["content_disposition"] = content_disposition + 800 + 801 try: + 802 # need a vanilla client b/c content-type is not application/json here + 803 response = httpx.post( + 804 f"{self.base_url}/w/{self.workspace}/job_helpers/upload_s3_file", + 805 headers={ + 806 "Authorization": f"Bearer {self.token}", + 807 "Content-Type": "application/octet-stream", + 808 }, + 809 params=query_params, + 810 content=content_payload, + 811 verify=self.verify, + 812 timeout=None, + 813 ).json() + 814 except Exception as e: + 815 raise Exception("Could not write file to S3") from e + 816 return S3Object(s3=response["file_key"]) + 817 + 818 def sign_s3_objects(self, s3_objects: list[S3Object | str]) -> list[S3Object]: + 819 return self.post( + 820 f"/w/{self.workspace}/apps/sign_s3_objects", json={"s3_objects": list(map(parse_s3_object, s3_objects))} + 821 ).json() + 822 + 823 def sign_s3_object(self, s3_object: S3Object | str) -> S3Object: + 824 return self.post( + 825 f"/w/{self.workspace}/apps/sign_s3_objects", + 826 json={"s3_objects": [s3_object]}, + 827 ).json()[0] + 828 + 829 def get_presigned_s3_public_urls( + 830 self, + 831 s3_objects: list[S3Object | str], + 832 base_url: str | None = None, + 833 ) -> list[str]: + 834 """ + 835 Generate presigned public URLs for an array of S3 objects. + 836 If an S3 object is not signed yet, it will be signed first. + 837 + 838 Args: + 839 s3_objects: List of S3 objects to sign + 840 base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL) + 841 + 842 Returns: + 843 List of signed public URLs + 844 + 845 Example: + 846 >>> s3_objs = [S3Object(s3="/path/to/file1.txt"), S3Object(s3="/path/to/file2.txt")] + 847 >>> urls = client.get_presigned_s3_public_urls(s3_objs) + 848 """ + 849 base_url = base_url or self._get_public_base_url() + 850 + 851 s3_objs = [parse_s3_object(s3_obj) for s3_obj in s3_objects] + 852 + 853 # Sign all S3 objects that need to be signed in one go + 854 s3_objs_to_sign: list[tuple[S3Object, int]] = [ + 855 (s3_obj, index) + 856 for index, s3_obj in enumerate(s3_objs) + 857 if s3_obj.get("presigned") is None + 858 ] 859 - 860 **[Enterprise Edition Only]** To include form fields in the Slack approval request, use the "Advanced -> Suspend -> Form" functionality. - 861 Learn more at: https://www.windmill.dev/docs/flows/flow_approval#form - 862 - 863 :param slack_resource_path: The path to the Slack resource in Windmill. - 864 :type slack_resource_path: str - 865 :param channel_id: The Slack channel ID where the approval request will be sent. - 866 :type channel_id: str - 867 :param message: Optional custom message to include in the Slack approval request. - 868 :type message: str, optional - 869 :param approver: Optional user ID or name of the approver for the request. - 870 :type approver: str, optional - 871 :param default_args_json: Optional dictionary defining or overriding the default arguments for form fields. - 872 :type default_args_json: dict, optional - 873 :param dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields. - 874 :type dynamic_enums_json: dict, optional + 860 if s3_objs_to_sign: + 861 print(f"Signing {len(s3_objs_to_sign)} S3 objects...") + 862 signed_s3_objs = self.sign_s3_objects( + 863 [s3_obj for s3_obj, _ in s3_objs_to_sign] + 864 ) + 865 for i, (_, original_index) in enumerate(s3_objs_to_sign): + 866 s3_objs[original_index] = parse_s3_object(signed_s3_objs[i]) + 867 + 868 signed_urls: list[str] = [] + 869 for s3_obj in s3_objs: + 870 s3 = s3_obj.get("s3", "") + 871 presigned = s3_obj.get("presigned", "") + 872 storage = s3_obj.get("storage", "_default_") + 873 signed_url = f"{base_url}/api/w/{self.workspace}/s3_proxy/{storage}/{s3}?{presigned}" + 874 signed_urls.append(signed_url) 875 - 876 :raises Exception: If the function is not called within a flow or flow preview. - 877 :raises Exception: If the required flow job or flow step environment variables are not set. - 878 - 879 :return: None - 880 - 881 **Usage Example:** - 882 >>> client.request_interactive_slack_approval( - 883 ... slack_resource_path="/u/alex/my_slack_resource", - 884 ... channel_id="admins-slack-channel", - 885 ... message="Please approve this request", - 886 ... approver="approver123", - 887 ... default_args_json={"key1": "value1", "key2": 42}, - 888 ... dynamic_enums_json={"foo": ["choice1", "choice2"], "bar": ["optionA", "optionB"]}, - 889 ... ) + 876 return signed_urls + 877 + 878 def get_presigned_s3_public_url( + 879 self, + 880 s3_object: S3Object | str, + 881 base_url: str | None = None, + 882 ) -> str: + 883 """ + 884 Generate a presigned public URL for an S3 object. + 885 If the S3 object is not signed yet, it will be signed first. + 886 + 887 Args: + 888 s3_object: S3 object to sign + 889 base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL) 890 - 891 **Notes:** - 892 - This function must be executed within a Windmill flow or flow preview. - 893 - The function checks for required environment variables (`WM_FLOW_JOB_ID`, `WM_FLOW_STEP_ID`) to ensure it is run in the appropriate context. - 894 """ - 895 workspace = self.workspace - 896 flow_job_id = os.environ.get("WM_FLOW_JOB_ID") - 897 - 898 if not flow_job_id: - 899 raise Exception( - 900 "You can't use 'request_interactive_slack_approval' function in a standalone script or flow step preview. Please use it in a flow or a flow preview." - 901 ) - 902 - 903 # Only include non-empty parameters - 904 params = {} - 905 if message: - 906 params["message"] = message - 907 if approver: - 908 params["approver"] = approver - 909 if slack_resource_path: - 910 params["slack_resource_path"] = slack_resource_path - 911 if channel_id: - 912 params["channel_id"] = channel_id - 913 if os.environ.get("WM_FLOW_STEP_ID"): - 914 params["flow_step_id"] = os.environ.get("WM_FLOW_STEP_ID") - 915 if default_args_json: - 916 params["default_args_json"] = json.dumps(default_args_json) - 917 if dynamic_enums_json: - 918 params["dynamic_enums_json"] = json.dumps(dynamic_enums_json) + 891 Returns: + 892 Signed public URL + 893 + 894 Example: + 895 >>> s3_obj = S3Object(s3="/path/to/file.txt") + 896 >>> url = client.get_presigned_s3_public_url(s3_obj) + 897 """ + 898 urls = self.get_presigned_s3_public_urls([s3_object], base_url) + 899 return urls[0] + 900 + 901 def _get_public_base_url(self) -> str: + 902 """Get the public base URL from environment or default to localhost""" + 903 return os.environ.get("WM_BASE_URL", "http://localhost:3000") + 904 + 905 def __boto3_connection_settings(self, s3_resource) -> Boto3ConnectionSettings: + 906 endpoint_url_prefix = "https://" if s3_resource["useSSL"] else "http://" + 907 return Boto3ConnectionSettings( + 908 { + 909 "endpoint_url": "{}{}".format( + 910 endpoint_url_prefix, s3_resource["endPoint"] + 911 ), + 912 "region_name": s3_resource["region"], + 913 "use_ssl": s3_resource["useSSL"], + 914 "aws_access_key_id": s3_resource["accessKey"], + 915 "aws_secret_access_key": s3_resource["secretKey"], + 916 # no need for path_style here as boto3 is clever enough to determine which one to use + 917 } + 918 ) 919 - 920 self.get( - 921 f"/w/{workspace}/jobs/slack_approval/{os.environ.get('WM_JOB_ID', 'NO_JOB_ID')}", - 922 params=params, - 923 ) - 924 - 925 def username_to_email(self, username: str) -> str: - 926 """ - 927 Get email from workspace username - 928 This method is particularly useful for apps that require the email address of the viewer. - 929 Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app. - 930 """ - 931 return self.get(f"/w/{self.workspace}/users/username_to_email/{username}").text - 932 - 933 def send_teams_message( - 934 self, - 935 conversation_id: str, - 936 text: str, - 937 success: bool = True, - 938 card_block: dict = None, - 939 ): - 940 """ - 941 Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message - 942 """ - 943 return self.post( - 944 f"/teams/activities", - 945 json={ - 946 "conversation_id": conversation_id, - 947 "text": text, - 948 "success": success, - 949 "card_block": card_block, - 950 }, - 951 ) - 952 + 920 def whoami(self) -> dict: + 921 return self.get("/users/whoami").json() + 922 + 923 @property + 924 def user(self) -> dict: + 925 return self.whoami() + 926 + 927 @property + 928 def state_path(self) -> str: + 929 state_path = os.environ.get( + 930 "WM_STATE_PATH_NEW", os.environ.get("WM_STATE_PATH") + 931 ) + 932 if state_path is None: + 933 raise Exception("State path not found") + 934 return state_path + 935 + 936 @property + 937 def state(self) -> Any: + 938 return self.get_resource(path=self.state_path, none_if_undefined=True) + 939 + 940 @state.setter + 941 def state(self, value: Any) -> None: + 942 self.set_state(value) + 943 + 944 @staticmethod + 945 def set_shared_state_pickle(value: Any, path: str = "state.pickle") -> None: + 946 """ + 947 Set the state in the shared folder using pickle + 948 """ + 949 import pickle + 950 + 951 with open(f"/shared/{path}", "wb") as handle: + 952 pickle.dump(value, handle, protocol=pickle.HIGHEST_PROTOCOL) 953 - 954def init_global_client(f): - 955 @functools.wraps(f) - 956 def wrapper(*args, **kwargs): - 957 global _client - 958 if _client is None: - 959 _client = Windmill() - 960 return f(*args, **kwargs) - 961 - 962 return wrapper + 954 @staticmethod + 955 def get_shared_state_pickle(path: str = "state.pickle") -> Any: + 956 """ + 957 Get the state in the shared folder using pickle + 958 """ + 959 import pickle + 960 + 961 with open(f"/shared/{path}", "rb") as handle: + 962 return pickle.load(handle) 963 - 964 - 965def deprecate(in_favor_of: str): - 966 def decorator(f): - 967 @functools.wraps(f) - 968 def wrapper(*args, **kwargs): - 969 warnings.warn( - 970 ( - 971 f"The '{f.__name__}' method is deprecated and may be removed in the future. " - 972 f"Consider {in_favor_of}" - 973 ), - 974 DeprecationWarning, - 975 ) - 976 return f(*args, **kwargs) - 977 - 978 return wrapper - 979 - 980 return decorator - 981 - 982 - 983@init_global_client - 984def get_workspace() -> str: - 985 return _client.workspace - 986 - 987 - 988@init_global_client - 989def get_root_job_id(job_id: str | None = None) -> str: - 990 return _client.get_root_job_id(job_id) + 964 @staticmethod + 965 def set_shared_state(value: Any, path: str = "state.json") -> None: + 966 """ + 967 Set the state in the shared folder using pickle + 968 """ + 969 import json + 970 + 971 with open(f"/shared/{path}", "w", encoding="utf-8") as f: + 972 json.dump(value, f, ensure_ascii=False, indent=4) + 973 + 974 @staticmethod + 975 def get_shared_state(path: str = "state.json") -> None: + 976 """ + 977 Get the state in the shared folder using pickle + 978 """ + 979 import json + 980 + 981 with open(f"/shared/{path}", "r", encoding="utf-8") as f: + 982 return json.load(f) + 983 + 984 def get_resume_urls(self, approver: str = None) -> dict: + 985 nonce = random.randint(0, 1000000000) + 986 job_id = os.environ.get("WM_JOB_ID") or "NO_ID" + 987 return self.get( + 988 f"/w/{self.workspace}/jobs/resume_urls/{job_id}/{nonce}", + 989 params={"approver": approver}, + 990 ).json() 991 - 992 - 993@init_global_client - 994@deprecate("Windmill().version") - 995def get_version() -> str: - 996 return _client.version - 997 - 998 - 999@init_global_client -1000def run_script_async( -1001 hash_or_path: str, -1002 args: Dict[str, Any] = None, -1003 scheduled_in_secs: int = None, -1004) -> str: -1005 is_path = "/" in hash_or_path -1006 hash_ = None if is_path else hash_or_path -1007 path = hash_or_path if is_path else None -1008 return _client.run_script_async( -1009 hash_=hash_, -1010 path=path, -1011 args=args, -1012 scheduled_in_secs=scheduled_in_secs, -1013 ) -1014 -1015 -1016@init_global_client -1017def run_flow_async( -1018 path: str, -1019 args: Dict[str, Any] = None, -1020 scheduled_in_secs: int = None, -1021 # can only be set to false if this the job will be fully await and not concurrent with any other job -1022 # as otherwise the child flow and its own child will store their state in the parent job which will -1023 # lead to incorrectness and failures -1024 do_not_track_in_parent: bool = True, -1025) -> str: -1026 return _client.run_flow_async( -1027 path=path, -1028 args=args, -1029 scheduled_in_secs=scheduled_in_secs, -1030 do_not_track_in_parent=do_not_track_in_parent, -1031 ) -1032 -1033 -1034@init_global_client -1035def run_script_sync( -1036 hash: str, -1037 args: Dict[str, Any] = None, -1038 verbose: bool = False, -1039 assert_result_is_not_none: bool = True, -1040 cleanup: bool = True, -1041 timeout: dt.timedelta = None, -1042) -> Any: -1043 return _client.run_script( -1044 hash_=hash, -1045 args=args, -1046 verbose=verbose, -1047 assert_result_is_not_none=assert_result_is_not_none, -1048 cleanup=cleanup, -1049 timeout=timeout, -1050 ) -1051 -1052 -1053@init_global_client -1054def run_script_by_path_async( -1055 path: str, -1056 args: Dict[str, Any] = None, -1057 scheduled_in_secs: Union[None, int] = None, -1058) -> str: -1059 return _client.run_script_by_path_async( -1060 path=path, -1061 args=args, -1062 scheduled_in_secs=scheduled_in_secs, -1063 ) -1064 -1065 -1066@init_global_client -1067def run_script_by_hash_async( -1068 hash_: str, -1069 args: Dict[str, Any] = None, -1070 scheduled_in_secs: Union[None, int] = None, -1071) -> str: -1072 return _client.run_script_by_hash_async( -1073 hash_=hash_, -1074 args=args, -1075 scheduled_in_secs=scheduled_in_secs, -1076 ) -1077 -1078 -1079@init_global_client -1080def run_script_by_path_sync( -1081 path: str, -1082 args: Dict[str, Any] = None, -1083 verbose: bool = False, -1084 assert_result_is_not_none: bool = True, -1085 cleanup: bool = True, -1086 timeout: dt.timedelta = None, -1087) -> Any: -1088 return _client.run_script( -1089 path=path, -1090 args=args, -1091 verbose=verbose, -1092 assert_result_is_not_none=assert_result_is_not_none, -1093 cleanup=cleanup, -1094 timeout=timeout, -1095 ) + 992 def request_interactive_slack_approval( + 993 self, + 994 slack_resource_path: str, + 995 channel_id: str, + 996 message: str = None, + 997 approver: str = None, + 998 default_args_json: dict = None, + 999 dynamic_enums_json: dict = None, +1000 ) -> None: +1001 """ +1002 Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields. +1003 +1004 **[Enterprise Edition Only]** To include form fields in the Slack approval request, use the "Advanced -> Suspend -> Form" functionality. +1005 Learn more at: https://www.windmill.dev/docs/flows/flow_approval#form +1006 +1007 :param slack_resource_path: The path to the Slack resource in Windmill. +1008 :type slack_resource_path: str +1009 :param channel_id: The Slack channel ID where the approval request will be sent. +1010 :type channel_id: str +1011 :param message: Optional custom message to include in the Slack approval request. +1012 :type message: str, optional +1013 :param approver: Optional user ID or name of the approver for the request. +1014 :type approver: str, optional +1015 :param default_args_json: Optional dictionary defining or overriding the default arguments for form fields. +1016 :type default_args_json: dict, optional +1017 :param dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields. +1018 :type dynamic_enums_json: dict, optional +1019 +1020 :raises Exception: If the function is not called within a flow or flow preview. +1021 :raises Exception: If the required flow job or flow step environment variables are not set. +1022 +1023 :return: None +1024 +1025 **Usage Example:** +1026 >>> client.request_interactive_slack_approval( +1027 ... slack_resource_path="/u/alex/my_slack_resource", +1028 ... channel_id="admins-slack-channel", +1029 ... message="Please approve this request", +1030 ... approver="approver123", +1031 ... default_args_json={"key1": "value1", "key2": 42}, +1032 ... dynamic_enums_json={"foo": ["choice1", "choice2"], "bar": ["optionA", "optionB"]}, +1033 ... ) +1034 +1035 **Notes:** +1036 - This function must be executed within a Windmill flow or flow preview. +1037 - The function checks for required environment variables (`WM_FLOW_JOB_ID`, `WM_FLOW_STEP_ID`) to ensure it is run in the appropriate context. +1038 """ +1039 workspace = self.workspace +1040 flow_job_id = os.environ.get("WM_FLOW_JOB_ID") +1041 +1042 if not flow_job_id: +1043 raise Exception( +1044 "You can't use 'request_interactive_slack_approval' function in a standalone script or flow step preview. Please use it in a flow or a flow preview." +1045 ) +1046 +1047 # Only include non-empty parameters +1048 params = {} +1049 if message: +1050 params["message"] = message +1051 if approver: +1052 params["approver"] = approver +1053 if slack_resource_path: +1054 params["slack_resource_path"] = slack_resource_path +1055 if channel_id: +1056 params["channel_id"] = channel_id +1057 if os.environ.get("WM_FLOW_STEP_ID"): +1058 params["flow_step_id"] = os.environ.get("WM_FLOW_STEP_ID") +1059 if default_args_json: +1060 params["default_args_json"] = json.dumps(default_args_json) +1061 if dynamic_enums_json: +1062 params["dynamic_enums_json"] = json.dumps(dynamic_enums_json) +1063 +1064 self.get( +1065 f"/w/{workspace}/jobs/slack_approval/{os.environ.get('WM_JOB_ID', 'NO_JOB_ID')}", +1066 params=params, +1067 ) +1068 +1069 def username_to_email(self, username: str) -> str: +1070 """ +1071 Get email from workspace username +1072 This method is particularly useful for apps that require the email address of the viewer. +1073 Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app. +1074 """ +1075 return self.get(f"/w/{self.workspace}/users/username_to_email/{username}").text +1076 +1077 def send_teams_message( +1078 self, +1079 conversation_id: str, +1080 text: str, +1081 success: bool = True, +1082 card_block: dict = None, +1083 ): +1084 """ +1085 Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message +1086 """ +1087 return self.post( +1088 f"/teams/activities", +1089 json={ +1090 "conversation_id": conversation_id, +1091 "text": text, +1092 "success": success, +1093 "card_block": card_block, +1094 }, +1095 ) 1096 -1097 -1098@init_global_client -1099def get_id_token(audience: str) -> str: -1100 """ -1101 Get a JWT token for the given audience for OIDC purposes to login into third parties like AWS, Vault, GCP, etc. -1102 """ -1103 return _client.get_id_token(audience) +1097 def datatable(self, name: str = "main"): +1098 return DataTableClient(self, name) +1099 +1100 def ducklake(self, name: str = "main"): +1101 return DucklakeClient(self, name) +1102 +1103 1104 -1105 -1106@init_global_client -1107def get_job_status(job_id: str) -> JobStatus: -1108 return _client.get_job_status(job_id) -1109 -1110 -1111@init_global_client -1112def get_result(job_id: str, assert_result_is_not_none=True) -> Dict[str, Any]: -1113 return _client.get_result( -1114 job_id=job_id, assert_result_is_not_none=assert_result_is_not_none -1115 ) -1116 -1117 -1118@init_global_client -1119def duckdb_connection_settings(s3_resource_path: str = "") -> DuckDbConnectionSettings: -1120 """ -1121 Convenient helpers that takes an S3 resource as input and returns the settings necessary to -1122 initiate an S3 connection from DuckDB -1123 """ -1124 return _client.get_duckdb_connection_settings(s3_resource_path) -1125 -1126 -1127@init_global_client -1128def polars_connection_settings(s3_resource_path: str = "") -> PolarsConnectionSettings: -1129 """ -1130 Convenient helpers that takes an S3 resource as input and returns the settings necessary to -1131 initiate an S3 connection from Polars -1132 """ -1133 return _client.get_polars_connection_settings(s3_resource_path) -1134 -1135 -1136@init_global_client -1137def boto3_connection_settings(s3_resource_path: str = "") -> Boto3ConnectionSettings: -1138 """ -1139 Convenient helpers that takes an S3 resource as input and returns the settings necessary to -1140 initiate an S3 connection using boto3 -1141 """ -1142 return _client.get_boto3_connection_settings(s3_resource_path) +1105def init_global_client(f): +1106 @functools.wraps(f) +1107 def wrapper(*args, **kwargs): +1108 global _client +1109 if _client is None: +1110 _client = Windmill() +1111 return f(*args, **kwargs) +1112 +1113 return wrapper +1114 +1115 +1116def deprecate(in_favor_of: str): +1117 def decorator(f): +1118 @functools.wraps(f) +1119 def wrapper(*args, **kwargs): +1120 warnings.warn( +1121 ( +1122 f"The '{f.__name__}' method is deprecated and may be removed in the future. " +1123 f"Consider {in_favor_of}" +1124 ), +1125 DeprecationWarning, +1126 ) +1127 return f(*args, **kwargs) +1128 +1129 return wrapper +1130 +1131 return decorator +1132 +1133 +1134@init_global_client +1135def get_workspace() -> str: +1136 return _client.workspace +1137 +1138 +1139@init_global_client +1140def get_root_job_id(job_id: str | None = None) -> str: +1141 return _client.get_root_job_id(job_id) +1142 1143 -1144 -1145@init_global_client -1146def load_s3_file(s3object: S3Object | str, s3_resource_path: str | None = None) -> bytes: -1147 """ -1148 Load the entire content of a file stored in S3 as bytes -1149 """ -1150 return _client.load_s3_file( -1151 s3object, s3_resource_path if s3_resource_path != "" else None -1152 ) -1153 -1154 -1155@init_global_client -1156def load_s3_file_reader( -1157 s3object: S3Object | str, s3_resource_path: str | None = None -1158) -> BufferedReader: -1159 """ -1160 Load the content of a file stored in S3 -1161 """ -1162 return _client.load_s3_file_reader( -1163 s3object, s3_resource_path if s3_resource_path != "" else None +1144@init_global_client +1145@deprecate("Windmill().version") +1146def get_version() -> str: +1147 return _client.version +1148 +1149 +1150@init_global_client +1151def run_script_async( +1152 hash_or_path: str, +1153 args: Dict[str, Any] = None, +1154 scheduled_in_secs: int = None, +1155) -> str: +1156 is_path = "/" in hash_or_path +1157 hash_ = None if is_path else hash_or_path +1158 path = hash_or_path if is_path else None +1159 return _client.run_script_async( +1160 hash_=hash_, +1161 path=path, +1162 args=args, +1163 scheduled_in_secs=scheduled_in_secs, 1164 ) 1165 1166 1167@init_global_client -1168def write_s3_file( -1169 s3object: S3Object | str | None, -1170 file_content: BufferedReader | bytes, -1171 s3_resource_path: str | None = None, -1172 content_type: str | None = None, -1173 content_disposition: str | None = None, -1174) -> S3Object: -1175 """ -1176 Upload a file to S3 -1177 -1178 Content type will be automatically guessed from path extension if left empty -1179 -1180 See MDN for content_disposition: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition -1181 and content_type: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type -1182 -1183 """ -1184 return _client.write_s3_file( -1185 s3object, -1186 file_content, -1187 s3_resource_path if s3_resource_path != "" else None, -1188 content_type, -1189 content_disposition, -1190 ) -1191 -1192 -1193@init_global_client -1194def sign_s3_objects(s3_objects: list[S3Object | str]) -> list[S3Object]: -1195 """ -1196 Sign S3 objects to be used by anonymous users in public apps -1197 Returns a list of signed s3 tokens -1198 """ -1199 return _client.sign_s3_objects(s3_objects) -1200 -1201 -1202@init_global_client -1203def sign_s3_object(s3_object: S3Object| str) -> S3Object: -1204 """ -1205 Sign S3 object to be used by anonymous users in public apps -1206 Returns a signed s3 object -1207 """ -1208 return _client.sign_s3_object(s3_object) -1209 -1210 -1211@init_global_client -1212def whoami() -> dict: -1213 """ -1214 Returns the current user -1215 """ -1216 return _client.user -1217 -1218 -1219@init_global_client -1220@deprecate("Windmill().state") -1221def get_state() -> Any: -1222 """ -1223 Get the state -1224 """ -1225 return _client.state -1226 -1227 -1228@init_global_client -1229def get_resource( -1230 path: str, -1231 none_if_undefined: bool = False, -1232) -> dict | None: -1233 """Get resource from Windmill""" -1234 return _client.get_resource(path, none_if_undefined) -1235 -1236 -1237@init_global_client -1238def set_resource(path: str, value: Any, resource_type: str = "any") -> None: -1239 """ -1240 Set the resource at a given path as a string, creating it if it does not exist -1241 """ -1242 return _client.set_resource(value=value, path=path, resource_type=resource_type) -1243 -1244 -1245@init_global_client -1246def set_state(value: Any) -> None: -1247 """ -1248 Set the state -1249 """ -1250 return _client.set_state(value) -1251 -1252 -1253@init_global_client -1254def set_progress(value: int, job_id: Optional[str] = None) -> None: -1255 """ -1256 Set the progress -1257 """ -1258 return _client.set_progress(value, job_id) -1259 +1168def run_flow_async( +1169 path: str, +1170 args: Dict[str, Any] = None, +1171 scheduled_in_secs: int = None, +1172 # can only be set to false if this the job will be fully await and not concurrent with any other job +1173 # as otherwise the child flow and its own child will store their state in the parent job which will +1174 # lead to incorrectness and failures +1175 do_not_track_in_parent: bool = True, +1176) -> str: +1177 return _client.run_flow_async( +1178 path=path, +1179 args=args, +1180 scheduled_in_secs=scheduled_in_secs, +1181 do_not_track_in_parent=do_not_track_in_parent, +1182 ) +1183 +1184 +1185@init_global_client +1186def run_script_sync( +1187 hash: str, +1188 args: Dict[str, Any] = None, +1189 verbose: bool = False, +1190 assert_result_is_not_none: bool = True, +1191 cleanup: bool = True, +1192 timeout: dt.timedelta = None, +1193) -> Any: +1194 return _client.run_script( +1195 hash_=hash, +1196 args=args, +1197 verbose=verbose, +1198 assert_result_is_not_none=assert_result_is_not_none, +1199 cleanup=cleanup, +1200 timeout=timeout, +1201 ) +1202 +1203 +1204@init_global_client +1205def run_script_by_path_async( +1206 path: str, +1207 args: Dict[str, Any] = None, +1208 scheduled_in_secs: Union[None, int] = None, +1209) -> str: +1210 return _client.run_script_by_path_async( +1211 path=path, +1212 args=args, +1213 scheduled_in_secs=scheduled_in_secs, +1214 ) +1215 +1216 +1217@init_global_client +1218def run_script_by_hash_async( +1219 hash_: str, +1220 args: Dict[str, Any] = None, +1221 scheduled_in_secs: Union[None, int] = None, +1222) -> str: +1223 return _client.run_script_by_hash_async( +1224 hash_=hash_, +1225 args=args, +1226 scheduled_in_secs=scheduled_in_secs, +1227 ) +1228 +1229 +1230@init_global_client +1231def run_script_by_path_sync( +1232 path: str, +1233 args: Dict[str, Any] = None, +1234 verbose: bool = False, +1235 assert_result_is_not_none: bool = True, +1236 cleanup: bool = True, +1237 timeout: dt.timedelta = None, +1238) -> Any: +1239 return _client.run_script( +1240 path=path, +1241 args=args, +1242 verbose=verbose, +1243 assert_result_is_not_none=assert_result_is_not_none, +1244 cleanup=cleanup, +1245 timeout=timeout, +1246 ) +1247 +1248 +1249@init_global_client +1250def get_id_token(audience: str) -> str: +1251 """ +1252 Get a JWT token for the given audience for OIDC purposes to login into third parties like AWS, Vault, GCP, etc. +1253 """ +1254 return _client.get_id_token(audience) +1255 +1256 +1257@init_global_client +1258def get_job_status(job_id: str) -> JobStatus: +1259 return _client.get_job_status(job_id) 1260 -1261@init_global_client -1262def get_progress(job_id: Optional[str] = None) -> Any: -1263 """ -1264 Get the progress -1265 """ -1266 return _client.get_progress(job_id) +1261 +1262@init_global_client +1263def get_result(job_id: str, assert_result_is_not_none=True) -> Dict[str, Any]: +1264 return _client.get_result( +1265 job_id=job_id, assert_result_is_not_none=assert_result_is_not_none +1266 ) 1267 1268 -1269def set_shared_state_pickle(value: Any, path="state.pickle") -> None: -1270 """ -1271 Set the state in the shared folder using pickle -1272 """ -1273 return Windmill.set_shared_state_pickle(value=value, path=path) -1274 -1275 -1276@deprecate("Windmill.get_shared_state_pickle(...)") -1277def get_shared_state_pickle(path="state.pickle") -> Any: -1278 """ -1279 Get the state in the shared folder using pickle -1280 """ -1281 return Windmill.get_shared_state_pickle(path=path) -1282 -1283 -1284def set_shared_state(value: Any, path="state.json") -> None: -1285 """ -1286 Set the state in the shared folder using pickle -1287 """ -1288 return Windmill.set_shared_state(value=value, path=path) -1289 -1290 -1291def get_shared_state(path="state.json") -> None: -1292 """ -1293 Get the state in the shared folder using pickle -1294 """ -1295 return Windmill.get_shared_state(path=path) -1296 -1297 -1298@init_global_client -1299def get_variable(path: str) -> str: -1300 """ -1301 Returns the variable at a given path as a string -1302 """ -1303 return _client.get_variable(path) +1269@init_global_client +1270def duckdb_connection_settings(s3_resource_path: str = "") -> DuckDbConnectionSettings: +1271 """ +1272 Convenient helpers that takes an S3 resource as input and returns the settings necessary to +1273 initiate an S3 connection from DuckDB +1274 """ +1275 return _client.get_duckdb_connection_settings(s3_resource_path) +1276 +1277 +1278@init_global_client +1279def polars_connection_settings(s3_resource_path: str = "") -> PolarsConnectionSettings: +1280 """ +1281 Convenient helpers that takes an S3 resource as input and returns the settings necessary to +1282 initiate an S3 connection from Polars +1283 """ +1284 return _client.get_polars_connection_settings(s3_resource_path) +1285 +1286 +1287@init_global_client +1288def boto3_connection_settings(s3_resource_path: str = "") -> Boto3ConnectionSettings: +1289 """ +1290 Convenient helpers that takes an S3 resource as input and returns the settings necessary to +1291 initiate an S3 connection using boto3 +1292 """ +1293 return _client.get_boto3_connection_settings(s3_resource_path) +1294 +1295 +1296@init_global_client +1297def load_s3_file(s3object: S3Object | str, s3_resource_path: str | None = None) -> bytes: +1298 """ +1299 Load the entire content of a file stored in S3 as bytes +1300 """ +1301 return _client.load_s3_file( +1302 s3object, s3_resource_path if s3_resource_path != "" else None +1303 ) 1304 1305 1306@init_global_client -1307def set_variable(path: str, value: str, is_secret: bool = False) -> None: -1308 """ -1309 Set the variable at a given path as a string, creating it if it does not exist -1310 """ -1311 return _client.set_variable(path, value, is_secret) -1312 -1313 -1314@init_global_client -1315def get_flow_user_state(key: str) -> Any: -1316 """ -1317 Get the user state of a flow at a given key -1318 """ -1319 return _client.get_flow_user_state(key) -1320 -1321 -1322@init_global_client -1323def set_flow_user_state(key: str, value: Any) -> None: -1324 """ -1325 Set the user state of a flow at a given key -1326 """ -1327 return _client.set_flow_user_state(key, value) +1307def load_s3_file_reader( +1308 s3object: S3Object | str, s3_resource_path: str | None = None +1309) -> BufferedReader: +1310 """ +1311 Load the content of a file stored in S3 +1312 """ +1313 return _client.load_s3_file_reader( +1314 s3object, s3_resource_path if s3_resource_path != "" else None +1315 ) +1316 +1317 +1318@init_global_client +1319def write_s3_file( +1320 s3object: S3Object | str | None, +1321 file_content: BufferedReader | bytes, +1322 s3_resource_path: str | None = None, +1323 content_type: str | None = None, +1324 content_disposition: str | None = None, +1325) -> S3Object: +1326 """ +1327 Upload a file to S3 1328 -1329 -1330@init_global_client -1331def get_state_path() -> str: -1332 return _client.state_path +1329 Content type will be automatically guessed from path extension if left empty +1330 +1331 See MDN for content_disposition: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition +1332 and content_type: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type 1333 -1334 -1335@init_global_client -1336def get_resume_urls(approver: str = None) -> dict: -1337 return _client.get_resume_urls(approver) -1338 -1339 -1340@init_global_client -1341def request_interactive_slack_approval( -1342 slack_resource_path: str, -1343 channel_id: str, -1344 message: str = None, -1345 approver: str = None, -1346 default_args_json: dict = None, -1347 dynamic_enums_json: dict = None, -1348) -> None: -1349 return _client.request_interactive_slack_approval( -1350 slack_resource_path=slack_resource_path, -1351 channel_id=channel_id, -1352 message=message, -1353 approver=approver, -1354 default_args_json=default_args_json, -1355 dynamic_enums_json=dynamic_enums_json, -1356 ) -1357 -1358 -1359@init_global_client -1360def send_teams_message( -1361 conversation_id: str, text: str, success: bool, card_block: dict = None -1362): -1363 return _client.send_teams_message(conversation_id, text, success, card_block) -1364 -1365 -1366@init_global_client -1367def cancel_running() -> dict: -1368 """Cancel currently running executions of the same script.""" -1369 return _client.cancel_running() +1334 """ +1335 return _client.write_s3_file( +1336 s3object, +1337 file_content, +1338 s3_resource_path if s3_resource_path != "" else None, +1339 content_type, +1340 content_disposition, +1341 ) +1342 +1343 +1344@init_global_client +1345def sign_s3_objects(s3_objects: list[S3Object | str]) -> list[S3Object]: +1346 """ +1347 Sign S3 objects to be used by anonymous users in public apps +1348 Returns a list of signed s3 tokens +1349 """ +1350 return _client.sign_s3_objects(s3_objects) +1351 +1352 +1353@init_global_client +1354def sign_s3_object(s3_object: S3Object| str) -> S3Object: +1355 """ +1356 Sign S3 object to be used by anonymous users in public apps +1357 Returns a signed s3 object +1358 """ +1359 return _client.sign_s3_object(s3_object) +1360 +1361 +1362@init_global_client +1363def get_presigned_s3_public_urls( +1364 s3_objects: list[S3Object | str], +1365 base_url: str | None = None, +1366) -> list[str]: +1367 """ +1368 Generate presigned public URLs for an array of S3 objects. +1369 If an S3 object is not signed yet, it will be signed first. 1370 -1371 -1372@init_global_client -1373def run_script( -1374 path: str = None, -1375 hash_: str = None, -1376 args: dict = None, -1377 timeout: dt.timedelta | int | float = None, -1378 verbose: bool = False, -1379 cleanup: bool = True, -1380 assert_result_is_not_none: bool = True, -1381) -> Any: -1382 """Run script synchronously and return its result. -1383 -1384 .. deprecated:: Use run_script_by_path or run_script_by_hash instead. -1385 """ -1386 return _client.run_script( -1387 path=path, -1388 hash_=hash_, -1389 args=args, -1390 verbose=verbose, -1391 assert_result_is_not_none=assert_result_is_not_none, -1392 cleanup=cleanup, -1393 timeout=timeout, -1394 ) +1371 Args: +1372 s3_objects: List of S3 objects to sign +1373 base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL) +1374 +1375 Returns: +1376 List of signed public URLs +1377 +1378 Example: +1379 >>> import wmill +1380 >>> from wmill import S3Object +1381 >>> s3_objs = [S3Object(s3="/path/to/file1.txt"), S3Object(s3="/path/to/file2.txt")] +1382 >>> urls = wmill.get_presigned_s3_public_urls(s3_objs) +1383 """ +1384 return _client.get_presigned_s3_public_urls(s3_objects, base_url) +1385 +1386 +1387@init_global_client +1388def get_presigned_s3_public_url( +1389 s3_object: S3Object | str, +1390 base_url: str | None = None, +1391) -> str: +1392 """ +1393 Generate a presigned public URL for an S3 object. +1394 If the S3 object is not signed yet, it will be signed first. 1395 -1396 -1397@init_global_client -1398def run_script_by_path( -1399 path: str, -1400 args: dict = None, -1401 timeout: dt.timedelta | int | float = None, -1402 verbose: bool = False, -1403 cleanup: bool = True, -1404 assert_result_is_not_none: bool = True, -1405) -> Any: -1406 """Run script by path synchronously and return its result.""" -1407 return _client.run_script_by_path( -1408 path=path, -1409 args=args, -1410 verbose=verbose, -1411 assert_result_is_not_none=assert_result_is_not_none, -1412 cleanup=cleanup, -1413 timeout=timeout, -1414 ) -1415 -1416 -1417@init_global_client -1418def run_script_by_hash( -1419 hash_: str, -1420 args: dict = None, -1421 timeout: dt.timedelta | int | float = None, -1422 verbose: bool = False, -1423 cleanup: bool = True, -1424 assert_result_is_not_none: bool = True, -1425) -> Any: -1426 """Run script by hash synchronously and return its result.""" -1427 return _client.run_script_by_hash( -1428 hash_=hash_, -1429 args=args, -1430 verbose=verbose, -1431 assert_result_is_not_none=assert_result_is_not_none, -1432 cleanup=cleanup, -1433 timeout=timeout, -1434 ) -1435 +1396 Args: +1397 s3_object: S3 object to sign +1398 base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL) +1399 +1400 Returns: +1401 Signed public URL +1402 +1403 Example: +1404 >>> import wmill +1405 >>> from wmill import S3Object +1406 >>> s3_obj = S3Object(s3="/path/to/file.txt") +1407 >>> url = wmill.get_presigned_s3_public_url(s3_obj) +1408 """ +1409 return _client.get_presigned_s3_public_url(s3_object, base_url) +1410 +1411 +1412@init_global_client +1413def whoami() -> dict: +1414 """ +1415 Returns the current user +1416 """ +1417 return _client.user +1418 +1419 +1420@init_global_client +1421@deprecate("Windmill().state") +1422def get_state() -> Any: +1423 """ +1424 Get the state +1425 """ +1426 return _client.state +1427 +1428 +1429@init_global_client +1430def get_resource( +1431 path: str, +1432 none_if_undefined: bool = False, +1433) -> dict | None: +1434 """Get resource from Windmill""" +1435 return _client.get_resource(path, none_if_undefined) 1436 -1437@init_global_client -1438def username_to_email(username: str) -> str: -1439 """ -1440 Get email from workspace username -1441 This method is particularly useful for apps that require the email address of the viewer. -1442 Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app. -1443 """ -1444 return _client.username_to_email(username) +1437 +1438@init_global_client +1439def set_resource(path: str, value: Any, resource_type: str = "any") -> None: +1440 """ +1441 Set the resource at a given path as a string, creating it if it does not exist +1442 """ +1443 return _client.set_resource(value=value, path=path, resource_type=resource_type) +1444 1445 -1446 -1447def task(*args, **kwargs): -1448 from inspect import signature -1449 -1450 def f(func, tag: str | None = None): -1451 if ( -1452 os.environ.get("WM_JOB_ID") is None -1453 or os.environ.get("MAIN_OVERRIDE") == func.__name__ -1454 ): -1455 -1456 def inner(*args, **kwargs): -1457 return func(*args, **kwargs) -1458 -1459 return inner -1460 else: -1461 -1462 def inner(*args, **kwargs): -1463 global _client -1464 if _client is None: -1465 _client = Windmill() -1466 w_id = os.environ.get("WM_WORKSPACE") -1467 job_id = os.environ.get("WM_JOB_ID") -1468 f_name = func.__name__ -1469 json = kwargs -1470 params = list(signature(func).parameters) -1471 for i, arg in enumerate(args): -1472 if i < len(params): -1473 p = params[i] -1474 key = p -1475 if key not in kwargs: -1476 json[key] = arg -1477 -1478 params = {} -1479 if tag is not None: -1480 params["tag"] = tag -1481 w_as_code_response = _client.post( -1482 f"/w/{w_id}/jobs/run/workflow_as_code/{job_id}/{f_name}", -1483 json={"args": json}, -1484 params=params, -1485 ) -1486 job_id = w_as_code_response.text -1487 print(f"Executing task {func.__name__} on job {job_id}") -1488 job_result = _client.wait_job(job_id) -1489 print(f"Task {func.__name__} ({job_id}) completed") -1490 return job_result +1446@init_global_client +1447def list_resources( +1448 resource_type: str = None, +1449 page: int = None, +1450 per_page: int = None, +1451) -> list[dict]: +1452 """List resources from Windmill workspace. +1453 +1454 Args: +1455 resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3") +1456 page: Optional page number for pagination +1457 per_page: Optional number of results per page +1458 +1459 Returns: +1460 List of resource dictionaries +1461 +1462 Example: +1463 >>> # Get all resources +1464 >>> all_resources = wmill.list_resources() +1465 +1466 >>> # Get only PostgreSQL resources +1467 >>> pg_resources = wmill.list_resources(resource_type="postgresql") +1468 """ +1469 return _client.list_resources( +1470 resource_type=resource_type, +1471 page=page, +1472 per_page=per_page, +1473 ) +1474 +1475 +1476@init_global_client +1477def set_state(value: Any) -> None: +1478 """ +1479 Set the state +1480 """ +1481 return _client.set_state(value) +1482 +1483 +1484@init_global_client +1485def set_progress(value: int, job_id: Optional[str] = None) -> None: +1486 """ +1487 Set the progress +1488 """ +1489 return _client.set_progress(value, job_id) +1490 1491 -1492 return inner -1493 -1494 if len(args) == 1 and len(kwargs) == 0 and callable(args[0]): -1495 return f(args[0], None) -1496 else: -1497 return lambda x: f(x, kwargs.get("tag")) +1492@init_global_client +1493def get_progress(job_id: Optional[str] = None) -> Any: +1494 """ +1495 Get the progress +1496 """ +1497 return _client.get_progress(job_id) 1498 -1499def parse_resource_syntax(s: str) -> Optional[str]: -1500 """Parse resource syntax from string.""" -1501 if s is None: -1502 return None -1503 if s.startswith("$res:"): -1504 return s[5:] -1505 if s.startswith("res://"): -1506 return s[6:] -1507 return None -1508 -1509def parse_s3_object(s3_object: S3Object | str) -> S3Object: -1510 """Parse S3 object from string or S3Object format.""" -1511 if isinstance(s3_object, str): -1512 match = re.match(r'^s3://([^/]*)/(.*)$', s3_object) -1513 if match: -1514 return S3Object(s3=match.group(2) or "", storage=match.group(1) or None) -1515 return S3Object(s3="") -1516 else: -1517 return s3_object -1518 -1519 +1499 +1500def set_shared_state_pickle(value: Any, path="state.pickle") -> None: +1501 """ +1502 Set the state in the shared folder using pickle +1503 """ +1504 return Windmill.set_shared_state_pickle(value=value, path=path) +1505 +1506 +1507@deprecate("Windmill.get_shared_state_pickle(...)") +1508def get_shared_state_pickle(path="state.pickle") -> Any: +1509 """ +1510 Get the state in the shared folder using pickle +1511 """ +1512 return Windmill.get_shared_state_pickle(path=path) +1513 +1514 +1515def set_shared_state(value: Any, path="state.json") -> None: +1516 """ +1517 Set the state in the shared folder using pickle +1518 """ +1519 return Windmill.set_shared_state(value=value, path=path) 1520 -1521def parse_variable_syntax(s: str) -> Optional[str]: -1522 """Parse variable syntax from string.""" -1523 if s.startswith("var://"): -1524 return s[6:] -1525 return None -1526 +1521 +1522def get_shared_state(path="state.json") -> None: +1523 """ +1524 Get the state in the shared folder using pickle +1525 """ +1526 return Windmill.get_shared_state(path=path) 1527 -1528def append_to_result_stream(text: str) -> None: -1529 """Append a text to the result stream. -1530 -1531 Args: -1532 text: text to append to the result stream +1528 +1529@init_global_client +1530def get_variable(path: str) -> str: +1531 """ +1532 Returns the variable at a given path as a string 1533 """ -1534 print("WM_STREAM: {}".format(text.replace(chr(10), '\\n'))) +1534 return _client.get_variable(path) 1535 -1536def stream_result(stream) -> None: -1537 """Stream to the result stream. -1538 -1539 Args: -1540 stream: stream to stream to the result stream +1536 +1537@init_global_client +1538def set_variable(path: str, value: str, is_secret: bool = False) -> None: +1539 """ +1540 Set the variable at a given path as a string, creating it if it does not exist 1541 """ -1542 for text in stream: -1543 append_to_result_stream(text) +1542 return _client.set_variable(path, value, is_secret) +1543 +1544 +1545@init_global_client +1546def get_flow_user_state(key: str) -> Any: +1547 """ +1548 Get the user state of a flow at a given key +1549 """ +1550 return _client.get_flow_user_state(key) +1551 +1552 +1553@init_global_client +1554def set_flow_user_state(key: str, value: Any) -> None: +1555 """ +1556 Set the user state of a flow at a given key +1557 """ +1558 return _client.set_flow_user_state(key, value) +1559 +1560 +1561@init_global_client +1562def get_state_path() -> str: +1563 return _client.state_path +1564 +1565 +1566@init_global_client +1567def get_resume_urls(approver: str = None) -> dict: +1568 return _client.get_resume_urls(approver) +1569 +1570 +1571@init_global_client +1572def request_interactive_slack_approval( +1573 slack_resource_path: str, +1574 channel_id: str, +1575 message: str = None, +1576 approver: str = None, +1577 default_args_json: dict = None, +1578 dynamic_enums_json: dict = None, +1579) -> None: +1580 return _client.request_interactive_slack_approval( +1581 slack_resource_path=slack_resource_path, +1582 channel_id=channel_id, +1583 message=message, +1584 approver=approver, +1585 default_args_json=default_args_json, +1586 dynamic_enums_json=dynamic_enums_json, +1587 ) +1588 +1589 +1590@init_global_client +1591def send_teams_message( +1592 conversation_id: str, text: str, success: bool, card_block: dict = None +1593): +1594 return _client.send_teams_message(conversation_id, text, success, card_block) +1595 +1596 +1597@init_global_client +1598def cancel_job(job_id: str, reason: str = None) -> str: +1599 """Cancel a specific job by ID. +1600 +1601 Args: +1602 job_id: UUID of the job to cancel +1603 reason: Optional reason for cancellation +1604 +1605 Returns: +1606 Response message from the cancel endpoint +1607 """ +1608 return _client.cancel_job(job_id, reason) +1609 +1610 +1611@init_global_client +1612def cancel_running() -> dict: +1613 """Cancel currently running executions of the same script.""" +1614 return _client.cancel_running() +1615 +1616 +1617@init_global_client +1618def run_script( +1619 path: str = None, +1620 hash_: str = None, +1621 args: dict = None, +1622 timeout: dt.timedelta | int | float = None, +1623 verbose: bool = False, +1624 cleanup: bool = True, +1625 assert_result_is_not_none: bool = True, +1626) -> Any: +1627 """Run script synchronously and return its result. +1628 +1629 .. deprecated:: Use run_script_by_path or run_script_by_hash instead. +1630 """ +1631 return _client.run_script( +1632 path=path, +1633 hash_=hash_, +1634 args=args, +1635 verbose=verbose, +1636 assert_result_is_not_none=assert_result_is_not_none, +1637 cleanup=cleanup, +1638 timeout=timeout, +1639 ) +1640 +1641 +1642@init_global_client +1643def run_script_by_path( +1644 path: str, +1645 args: dict = None, +1646 timeout: dt.timedelta | int | float = None, +1647 verbose: bool = False, +1648 cleanup: bool = True, +1649 assert_result_is_not_none: bool = True, +1650) -> Any: +1651 """Run script by path synchronously and return its result.""" +1652 return _client.run_script_by_path( +1653 path=path, +1654 args=args, +1655 verbose=verbose, +1656 assert_result_is_not_none=assert_result_is_not_none, +1657 cleanup=cleanup, +1658 timeout=timeout, +1659 ) +1660 +1661 +1662@init_global_client +1663def run_script_by_hash( +1664 hash_: str, +1665 args: dict = None, +1666 timeout: dt.timedelta | int | float = None, +1667 verbose: bool = False, +1668 cleanup: bool = True, +1669 assert_result_is_not_none: bool = True, +1670) -> Any: +1671 """Run script by hash synchronously and return its result.""" +1672 return _client.run_script_by_hash( +1673 hash_=hash_, +1674 args=args, +1675 verbose=verbose, +1676 assert_result_is_not_none=assert_result_is_not_none, +1677 cleanup=cleanup, +1678 timeout=timeout, +1679 ) +1680 +1681@init_global_client +1682def run_inline_script_preview( +1683 content: str, +1684 language: str, +1685 args: dict = None, +1686) -> Any: +1687 """Run a script on the current worker without creating a job""" +1688 return _client.run_inline_script_preview( +1689 content=content, +1690 language=language, +1691 args=args, +1692 ) +1693 +1694@init_global_client +1695def username_to_email(username: str) -> str: +1696 """ +1697 Get email from workspace username +1698 This method is particularly useful for apps that require the email address of the viewer. +1699 Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app. +1700 """ +1701 return _client.username_to_email(username) +1702 +1703 +1704@init_global_client +1705def datatable(name: str = "main") -> DataTableClient: +1706 return _client.datatable(name) +1707 +1708@init_global_client +1709def ducklake(name: str = "main") -> DucklakeClient: +1710 return _client.ducklake(name) +1711 +1712def task(*args, **kwargs): +1713 from inspect import signature +1714 +1715 def f(func, tag: str | None = None): +1716 if ( +1717 os.environ.get("WM_JOB_ID") is None +1718 or os.environ.get("MAIN_OVERRIDE") == func.__name__ +1719 ): +1720 +1721 def inner(*args, **kwargs): +1722 return func(*args, **kwargs) +1723 +1724 return inner +1725 else: +1726 +1727 def inner(*args, **kwargs): +1728 global _client +1729 if _client is None: +1730 _client = Windmill() +1731 w_id = os.environ.get("WM_WORKSPACE") +1732 job_id = os.environ.get("WM_JOB_ID") +1733 f_name = func.__name__ +1734 json = kwargs +1735 params = list(signature(func).parameters) +1736 for i, arg in enumerate(args): +1737 if i < len(params): +1738 p = params[i] +1739 key = p +1740 if key not in kwargs: +1741 json[key] = arg +1742 +1743 params = {} +1744 if tag is not None: +1745 params["tag"] = tag +1746 w_as_code_response = _client.post( +1747 f"/w/{w_id}/jobs/run/workflow_as_code/{job_id}/{f_name}", +1748 json={"args": json}, +1749 params=params, +1750 ) +1751 job_id = w_as_code_response.text +1752 print(f"Executing task {func.__name__} on job {job_id}") +1753 job_result = _client.wait_job(job_id) +1754 print(f"Task {func.__name__} ({job_id}) completed") +1755 return job_result +1756 +1757 return inner +1758 +1759 if len(args) == 1 and len(kwargs) == 0 and callable(args[0]): +1760 return f(args[0], None) +1761 else: +1762 return lambda x: f(x, kwargs.get("tag")) +1763 +1764def parse_resource_syntax(s: str) -> Optional[str]: +1765 """Parse resource syntax from string.""" +1766 if s is None: +1767 return None +1768 if s.startswith("$res:"): +1769 return s[5:] +1770 if s.startswith("res://"): +1771 return s[6:] +1772 return None +1773 +1774def parse_s3_object(s3_object: S3Object | str) -> S3Object: +1775 """Parse S3 object from string or S3Object format.""" +1776 if isinstance(s3_object, str): +1777 match = re.match(r'^s3://([^/]*)/(.*)$', s3_object) +1778 if match: +1779 return S3Object(s3=match.group(2) or "", storage=match.group(1) or None) +1780 return S3Object(s3="") +1781 else: +1782 return s3_object +1783 +1784 +1785 +1786def parse_variable_syntax(s: str) -> Optional[str]: +1787 """Parse variable syntax from string.""" +1788 if s.startswith("var://"): +1789 return s[6:] +1790 return None +1791 +1792 +1793def append_to_result_stream(text: str) -> None: +1794 """Append a text to the result stream. +1795 +1796 Args: +1797 text: text to append to the result stream +1798 """ +1799 print("WM_STREAM: {}".format(text.replace(chr(10), '\\n'))) +1800 +1801def stream_result(stream) -> None: +1802 """Stream to the result stream. +1803 +1804 Args: +1805 stream: stream to stream to the result stream +1806 """ +1807 for text in stream: +1808 append_to_result_stream(text) +1809 +1810class DataTableClient: +1811 def __init__(self, client: Windmill, name: str): +1812 self.client = client +1813 self.name = name +1814 def query(self, sql: str, *args): +1815 args_dict = {} +1816 args_def = "" +1817 for i, arg in enumerate(args): +1818 args_dict[f"arg{i+1}"] = arg +1819 args_def += f"-- ${i+1} arg{i+1}\n" +1820 sql = args_def + sql +1821 return SqlQuery( +1822 sql, +1823 lambda sql: self.client.run_inline_script_preview( +1824 content=sql, +1825 language="postgresql", +1826 args={"database": f"datatable://{self.name}", **args_dict}, +1827 ) +1828 ) +1829 +1830class DucklakeClient: +1831 def __init__(self, client: Windmill, name: str): +1832 self.client = client +1833 self.name = name +1834 def query(self, sql: str, **kwargs): +1835 args_dict = {} +1836 args_def = "" +1837 for key, value in kwargs.items(): +1838 args_dict[key] = value +1839 args_def += f"-- ${key} ({infer_sql_type(value)})\n" +1840 attach = f"ATTACH 'ducklake://{self.name}' AS dl;USE dl;\n" +1841 sql = args_def + attach + sql +1842 return SqlQuery( +1843 sql, +1844 lambda sql: self.client.run_inline_script_preview( +1845 content=sql, +1846 language="duckdb", +1847 args=args_dict, +1848 ) +1849 ) +1850 +1851class SqlQuery: +1852 def __init__(self, sql: str, fetch_fn): +1853 self.sql = sql +1854 self.fetch_fn = fetch_fn +1855 def fetch(self, result_collection: str | None = None): +1856 sql = self.sql +1857 if result_collection is not None: +1858 sql = f'-- result_collection={result_collection}\n{sql}' +1859 return self.fetch_fn(sql) +1860 def fetch_one(self): +1861 return self.fetch(result_collection="last_statement_first_row") +1862 +1863def infer_sql_type(value) -> str: +1864 """ +1865 DuckDB executor requires explicit argument types at declaration +1866 These types exist in both DuckDB and Postgres +1867 Check that the types exist if you plan to extend this function for other SQL engines. +1868 """ +1869 if isinstance(value, bool): +1870 # Check bool before int since bool is a subclass of int in Python +1871 return "BOOLEAN" +1872 elif isinstance(value, int): +1873 return "BIGINT" +1874 elif isinstance(value, float): +1875 return "DOUBLE PRECISION" +1876 elif value is None: +1877 return "TEXT" +1878 elif isinstance(value, str): +1879 return "TEXT" +1880 elif isinstance(value, dict) or isinstance(value, list): +1881 return "JSON" +1882 else: +1883 return "TEXT" @@ -1975,924 +2417,1074 @@ -
 35class Windmill:
- 36    def __init__(self, base_url=None, token=None, workspace=None, verify=True):
- 37        base = (
- 38            base_url
- 39            or os.environ.get("BASE_INTERNAL_URL")
- 40            or os.environ.get("WM_BASE_URL")
- 41        )
- 42
- 43        self.base_url = f"{base}/api"
- 44        self.token = token or os.environ.get("WM_TOKEN")
- 45        self.headers = {
- 46            "Content-Type": "application/json",
- 47            "Authorization": f"Bearer {self.token}",
- 48        }
- 49        self.verify = verify
- 50        self.client = self.get_client()
- 51        self.workspace = workspace or os.environ.get("WM_WORKSPACE")
- 52        self.path = os.environ.get("WM_JOB_PATH")
- 53
- 54        self.mocked_api = self.get_mocked_api()
- 55
- 56        assert self.workspace, (
- 57            f"workspace required as an argument or as WM_WORKSPACE environment variable"
- 58        )
- 59
- 60    def get_mocked_api(self) -> Optional[dict]:
- 61        mocked_path = os.environ.get("WM_MOCKED_API_FILE")
- 62        if not mocked_path:
- 63            return None
- 64        logger.info("Using mocked API from %s", mocked_path)
- 65        mocked_api = {"variables": {}, "resources": {}}
- 66        try:
- 67            with open(mocked_path, "r") as f:
- 68                incoming_mocked_api = json.load(f)
- 69            mocked_api = {**mocked_api, **incoming_mocked_api}
- 70        except Exception as e:
- 71            logger.warning(
- 72                "Error parsing mocked API file at path %s Using empty mocked API.",
- 73                mocked_path,
- 74            )
- 75            logger.debug(e)
- 76        return mocked_api
- 77
- 78    def get_client(self) -> httpx.Client:
- 79        return httpx.Client(
- 80            base_url=self.base_url,
- 81            headers=self.headers,
- 82            verify=self.verify,
- 83        )
- 84
- 85    def get(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:
- 86        endpoint = endpoint.lstrip("/")
- 87        resp = self.client.get(f"/{endpoint}", **kwargs)
- 88        if raise_for_status:
- 89            try:
- 90                resp.raise_for_status()
- 91            except httpx.HTTPStatusError as err:
- 92                error = f"{err.request.url}: {err.response.status_code}, {err.response.text}"
- 93                logger.error(error)
- 94                raise Exception(error)
- 95        return resp
- 96
- 97    def post(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:
- 98        endpoint = endpoint.lstrip("/")
- 99        resp = self.client.post(f"/{endpoint}", **kwargs)
-100        if raise_for_status:
-101            try:
-102                resp.raise_for_status()
-103            except httpx.HTTPStatusError as err:
-104                error = f"{err.request.url}: {err.response.status_code}, {err.response.text}"
-105                logger.error(error)
-106                raise Exception(error)
-107        return resp
-108
-109    def create_token(self, duration=dt.timedelta(days=1)) -> str:
-110        endpoint = "/users/tokens/create"
-111        payload = {
-112            "label": f"refresh {time.time()}",
-113            "expiration": (dt.datetime.now() + duration).strftime("%Y-%m-%dT%H:%M:%SZ"),
-114        }
-115        return self.post(endpoint, json=payload).text
-116
-117    def run_script_async(
-118        self,
-119        path: str = None,
-120        hash_: str = None,
-121        args: dict = None,
-122        scheduled_in_secs: int = None,
-123    ) -> str:
-124        """Create a script job and return its job id.
-125        
-126        .. deprecated:: Use run_script_by_path_async or run_script_by_hash_async instead.
-127        """
-128        logging.warning(
-129            "run_script_async is deprecated. Use run_script_by_path_async or run_script_by_hash_async instead.",
-130        )
-131        assert not (path and hash_), "path and hash_ are mutually exclusive"
-132        return self._run_script_async_internal(path=path, hash_=hash_, args=args, scheduled_in_secs=scheduled_in_secs)
-133
-134    def _run_script_async_internal(
-135        self,
-136        path: str = None,
-137        hash_: str = None,
-138        args: dict = None,
-139        scheduled_in_secs: int = None,
-140    ) -> str:
-141        """Internal helper for running scripts asynchronously."""
-142        args = args or {}
-143        params = {"scheduled_in_secs": scheduled_in_secs} if scheduled_in_secs else {}
-144        if os.environ.get("WM_JOB_ID"):
-145            params["parent_job"] = os.environ.get("WM_JOB_ID")
-146        if os.environ.get("WM_ROOT_FLOW_JOB_ID"):
-147            params["root_job"] = os.environ.get("WM_ROOT_FLOW_JOB_ID")
-148        
-149        if path:
-150            endpoint = f"/w/{self.workspace}/jobs/run/p/{path}"
-151        elif hash_:
-152            endpoint = f"/w/{self.workspace}/jobs/run/h/{hash_}"
-153        else:
-154            raise Exception("path or hash_ must be provided")
-155        
-156        return self.post(endpoint, json=args, params=params).text
-157
-158    def run_script_by_path_async(
-159        self,
-160        path: str,
-161        args: dict = None,
-162        scheduled_in_secs: int = None,
-163    ) -> str:
-164        """Create a script job by path and return its job id."""
-165        return self._run_script_async_internal(path=path, args=args, scheduled_in_secs=scheduled_in_secs)
-166
-167    def run_script_by_hash_async(
-168        self,
-169        hash_: str,
-170        args: dict = None,
-171        scheduled_in_secs: int = None,
-172    ) -> str:
-173        """Create a script job by hash and return its job id."""
-174        return self._run_script_async_internal(hash_=hash_, args=args, scheduled_in_secs=scheduled_in_secs)
-175
-176    def run_flow_async(
-177        self,
-178        path: str,
-179        args: dict = None,
-180        scheduled_in_secs: int = None,
-181        # can only be set to false if this the job will be fully await and not concurrent with any other job
-182        # as otherwise the child flow and its own child will store their state in the parent job which will
-183        # lead to incorrectness and failures
-184        do_not_track_in_parent: bool = True,
-185    ) -> str:
-186        """Create a flow job and return its job id."""
-187        args = args or {}
-188        params = {"scheduled_in_secs": scheduled_in_secs} if scheduled_in_secs else {}
-189        if not do_not_track_in_parent:
-190            if os.environ.get("WM_JOB_ID"):
-191                params["parent_job"] = os.environ.get("WM_JOB_ID")
-192            if os.environ.get("WM_ROOT_FLOW_JOB_ID"):
-193                params["root_job"] = os.environ.get("WM_ROOT_FLOW_JOB_ID")
-194        if path:
-195            endpoint = f"/w/{self.workspace}/jobs/run/f/{path}"
-196        else:
-197            raise Exception("path must be provided")
-198        return self.post(endpoint, json=args, params=params).text
-199
-200    def run_script(
-201        self,
-202        path: str = None,
-203        hash_: str = None,
-204        args: dict = None,
-205        timeout: dt.timedelta | int | float | None = None,
-206        verbose: bool = False,
-207        cleanup: bool = True,
-208        assert_result_is_not_none: bool = False,
-209    ) -> Any:
-210        """Run script synchronously and return its result.
-211        
-212        .. deprecated:: Use run_script_by_path or run_script_by_hash instead.
-213        """
-214        logging.warning(
-215            "run_script is deprecated. Use run_script_by_path or run_script_by_hash instead.",
-216        )
-217        assert not (path and hash_), "path and hash_ are mutually exclusive"
-218        return self._run_script_internal(
-219            path=path, hash_=hash_, args=args, timeout=timeout, verbose=verbose,
-220            cleanup=cleanup, assert_result_is_not_none=assert_result_is_not_none
-221        )
-222
-223    def _run_script_internal(
-224        self,
-225        path: str = None,
-226        hash_: str = None,
-227        args: dict = None,
-228        timeout: dt.timedelta | int | float | None = None,
-229        verbose: bool = False,
-230        cleanup: bool = True,
-231        assert_result_is_not_none: bool = False,
-232    ) -> Any:
-233        """Internal helper for running scripts synchronously."""
-234        args = args or {}
-235
-236        if verbose:
-237            if path:
-238                logger.info(f"running `{path}` synchronously with {args = }")
-239            elif hash_:
-240                logger.info(f"running script with hash `{hash_}` synchronously with {args = }")
-241
-242        if isinstance(timeout, dt.timedelta):
-243            timeout = timeout.total_seconds()
-244
-245        job_id = self._run_script_async_internal(path=path, hash_=hash_, args=args)
-246        return self.wait_job(
-247            job_id, timeout, verbose, cleanup, assert_result_is_not_none
-248        )
-249
-250    def run_script_by_path(
-251        self,
-252        path: str,
-253        args: dict = None,
-254        timeout: dt.timedelta | int | float | None = None,
-255        verbose: bool = False,
-256        cleanup: bool = True,
-257        assert_result_is_not_none: bool = False,
-258    ) -> Any:
-259        """Run script by path synchronously and return its result."""
-260        return self._run_script_internal(
-261            path=path, args=args, timeout=timeout, verbose=verbose,
-262            cleanup=cleanup, assert_result_is_not_none=assert_result_is_not_none
-263        )
-264
-265    def run_script_by_hash(
-266        self,
-267        hash_: str,
-268        args: dict = None,
-269        timeout: dt.timedelta | int | float | None = None,
-270        verbose: bool = False,
-271        cleanup: bool = True,
-272        assert_result_is_not_none: bool = False,
-273    ) -> Any:
-274        """Run script by hash synchronously and return its result."""
-275        return self._run_script_internal(
-276            hash_=hash_, args=args, timeout=timeout, verbose=verbose,
-277            cleanup=cleanup, assert_result_is_not_none=assert_result_is_not_none
-278        )
-279
-280    def wait_job(
-281        self,
-282        job_id,
-283        timeout: dt.timedelta | int | float | None = None,
-284        verbose: bool = False,
-285        cleanup: bool = True,
-286        assert_result_is_not_none: bool = False,
-287    ):
-288        def cancel_job():
-289            logger.warning(f"cancelling job: {job_id}")
-290            self.post(
-291                f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
-292                json={"reason": "parent script cancelled"},
-293            ).raise_for_status()
-294
-295        if cleanup:
-296            atexit.register(cancel_job)
-297
-298        start_time = time.time()
-299
-300        if isinstance(timeout, dt.timedelta):
-301            timeout = timeout.total_seconds()
-302
-303        while True:
-304            result_res = self.get(
-305                f"/w/{self.workspace}/jobs_u/completed/get_result_maybe/{job_id}", True
-306            ).json()
-307
-308            started = result_res["started"]
-309            completed = result_res["completed"]
-310            success = result_res["success"]
-311
-312            if not started and verbose:
-313                logger.info(f"job {job_id} has not started yet")
-314
-315            if cleanup and completed:
-316                atexit.unregister(cancel_job)
-317
-318            if completed:
-319                result = result_res["result"]
-320                if success:
-321                    if result is None and assert_result_is_not_none:
-322                        raise Exception("Result was none")
-323                    return result
-324                else:
-325                    error = result["error"]
-326                    raise Exception(f"Job {job_id} was not successful: {str(error)}")
-327
-328            if timeout and ((time.time() - start_time) > timeout):
-329                msg = "reached timeout"
-330                logger.warning(msg)
-331                self.post(
-332                    f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
-333                    json={"reason": msg},
-334                )
-335                raise TimeoutError(msg)
-336            if verbose:
-337                logger.info(f"sleeping 0.5 seconds for {job_id = }")
-338
-339            time.sleep(0.5)
-340
-341    def cancel_running(self) -> dict:
-342        """Cancel currently running executions of the same script."""
-343        logger.info("canceling running executions of this script")
-344
-345        jobs = self.get(
-346            f"/w/{self.workspace}/jobs/list",
-347            params={
-348                "running": "true",
-349                "script_path_exact": self.path,
-350            },
-351        ).json()
-352
-353        current_job_id = os.environ.get("WM_JOB_ID")
-354
-355        logger.debug(f"{current_job_id = }")
-356
-357        job_ids = [j["id"] for j in jobs if j["id"] != current_job_id]
-358
-359        if job_ids:
-360            logger.info(f"cancelling the following job ids: {job_ids}")
-361        else:
-362            logger.info("no previous executions to cancel")
-363
-364        result = {}
-365
-366        for id_ in job_ids:
-367            result[id_] = self.post(
-368                f"/w/{self.workspace}/jobs_u/queue/cancel/{id_}",
-369                json={"reason": "killed by `cancel_running` method"},
-370            )
-371
-372        return result
-373
-374    def get_job(self, job_id: str) -> dict:
-375        return self.get(f"/w/{self.workspace}/jobs_u/get/{job_id}").json()
-376
-377    def get_root_job_id(self, job_id: str | None = None) -> dict:
-378        job_id = job_id or os.environ.get("WM_JOB_ID")
-379        return self.get(f"/w/{self.workspace}/jobs_u/get_root_job_id/{job_id}").json()
-380
-381    def get_id_token(self, audience: str) -> str:
-382        return self.post(f"/w/{self.workspace}/oidc/token/{audience}").text
-383
-384    def get_job_status(self, job_id: str) -> JobStatus:
-385        job = self.get_job(job_id)
-386        job_type = job.get("type", "")
-387        assert job_type, f"{job} is not a valid job"
-388        if job_type.lower() == "completedjob":
-389            return "COMPLETED"
-390        if job.get("running"):
-391            return "RUNNING"
-392        return "WAITING"
-393
-394    def get_result(
-395        self,
-396        job_id: str,
-397        assert_result_is_not_none: bool = True,
-398    ) -> Any:
-399        result = self.get(f"/w/{self.workspace}/jobs_u/completed/get_result/{job_id}")
-400        result_text = result.text
-401        if assert_result_is_not_none and result_text is None:
-402            raise Exception(f"result is None for {job_id = }")
-403        try:
-404            return result.json()
-405        except JSONDecodeError:
-406            return result_text
-407
-408    def get_variable(self, path: str) -> str:
-409        path = parse_variable_syntax(path) or path
-410        if self.mocked_api is not None:
-411            variables = self.mocked_api["variables"]
-412            try:
-413                result = variables[path]
-414                return result
-415            except KeyError:
-416                logger.info(
-417                    f"MockedAPI present, but variable not found at {path}, falling back to real API"
-418                )
-419
-420        """Get variable from Windmill"""
-421        return self.get(f"/w/{self.workspace}/variables/get_value/{path}").json()
-422
-423    def set_variable(self, path: str, value: str, is_secret: bool = False) -> None:
-424        path = parse_variable_syntax(path) or path
-425        if self.mocked_api is not None:
-426            self.mocked_api["variables"][path] = value
-427            return
-428
-429        """Set variable from Windmill"""
-430        # check if variable exists
-431        r = self.get(
-432            f"/w/{self.workspace}/variables/get/{path}", raise_for_status=False
-433        )
-434        if r.status_code == 404:
-435            # create variable
-436            self.post(
-437                f"/w/{self.workspace}/variables/create",
-438                json={
-439                    "path": path,
-440                    "value": value,
-441                    "is_secret": is_secret,
-442                    "description": "",
-443                },
-444            )
-445        else:
-446            # update variable
-447            self.post(
-448                f"/w/{self.workspace}/variables/update/{path}",
-449                json={"value": value},
-450            )
-451
-452    def get_resource(
-453        self,
-454        path: str,
-455        none_if_undefined: bool = False,
-456    ) -> dict | None:
-457        path = parse_resource_syntax(path) or path
-458        if self.mocked_api is not None:
-459            resources = self.mocked_api["resources"]
-460            try:
-461                result = resources[path]
-462                return result
-463            except KeyError:
-464                # NOTE: should mocked_api respect `none_if_undefined`?
-465                if none_if_undefined:
-466                    logger.info(
-467                        f"resource not found at ${path}, but none_if_undefined is True, so returning None"
-468                    )
-469                    return None
-470                logger.info(
-471                    f"MockedAPI present, but resource not found at ${path}, falling back to real API"
-472                )
-473
-474        """Get resource from Windmill"""
-475        try:
-476            return self.get(
-477                f"/w/{self.workspace}/resources/get_value_interpolated/{path}"
-478            ).json()
-479        except Exception as e:
-480            if none_if_undefined:
-481                return None
-482            logger.error(e)
-483            raise e
-484
-485    def set_resource(
-486        self,
-487        value: Any,
-488        path: str,
-489        resource_type: str,
-490    ):
-491        path = parse_resource_syntax(path) or path
-492        if self.mocked_api is not None:
-493            self.mocked_api["resources"][path] = value
-494            return
-495
-496        # check if resource exists
-497        r = self.get(
-498            f"/w/{self.workspace}/resources/get/{path}", raise_for_status=False
-499        )
-500        if r.status_code == 404:
-501            # create resource
-502            self.post(
-503                f"/w/{self.workspace}/resources/create",
-504                json={
-505                    "path": path,
-506                    "value": value,
-507                    "resource_type": resource_type,
-508                },
-509            )
-510        else:
-511            # update resource
-512            self.post(
-513                f"/w/{self.workspace}/resources/update_value/{path}",
-514                json={"value": value},
-515            )
-516
-517    def set_state(self, value: Any):
-518        self.set_resource(value, path=self.state_path, resource_type="state")
-519
-520    def set_progress(self, value: int, job_id: Optional[str] = None):
-521        workspace = get_workspace()
-522        flow_id = os.environ.get("WM_FLOW_JOB_ID")
-523        job_id = job_id or os.environ.get("WM_JOB_ID")
-524
-525        if job_id != None:
-526            job = self.get_job(job_id)
-527            flow_id = job.get("parent_job")
-528
-529        self.post(
-530            f"/w/{workspace}/job_metrics/set_progress/{job_id}",
-531            json={
-532                "percent": value,
-533                "flow_job_id": flow_id or None,
-534            },
-535        )
-536
-537    def get_progress(self, job_id: Optional[str] = None) -> Any:
-538        workspace = get_workspace()
-539        job_id = job_id or os.environ.get("WM_JOB_ID")
-540
-541        r = self.get(
-542            f"/w/{workspace}/job_metrics/get_progress/{job_id}",
-543        )
-544        if r.status_code == 404:
-545            print(f"Job {job_id} does not exist")
-546            return None
-547        else:
-548            return r.json()
-549
-550    def set_flow_user_state(self, key: str, value: Any) -> None:
-551        """Set the user state of a flow at a given key"""
-552        flow_id = self.get_root_job_id()
-553        r = self.post(
-554            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
-555            json=value,
-556            raise_for_status=False,
-557        )
-558        if r.status_code == 404:
-559            print(f"Job {flow_id} does not exist or is not a flow")
-560
-561    def get_flow_user_state(self, key: str) -> Any:
-562        """Get the user state of a flow at a given key"""
-563        flow_id = self.get_root_job_id()
-564        r = self.get(
-565            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
-566            raise_for_status=False,
-567        )
-568        if r.status_code == 404:
-569            print(f"Job {flow_id} does not exist or is not a flow")
-570            return None
-571        else:
-572            return r.json()
-573
-574    @property
-575    def version(self):
-576        return self.get("version").text
-577
-578    def get_duckdb_connection_settings(
-579        self,
-580        s3_resource_path: str = "",
-581    ) -> DuckDbConnectionSettings | None:
-582        """
-583        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-584        initiate an S3 connection from DuckDB
-585        """
-586        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
-587        try:
-588            raw_obj = self.post(
-589                f"/w/{self.workspace}/job_helpers/v2/duckdb_connection_settings",
-590                json={}
-591                if s3_resource_path == ""
-592                else {"s3_resource_path": s3_resource_path},
-593            ).json()
-594            return DuckDbConnectionSettings(raw_obj)
-595        except JSONDecodeError as e:
-596            raise Exception(
-597                "Could not generate DuckDB S3 connection settings from the provided resource"
-598            ) from e
-599
-600    def get_polars_connection_settings(
-601        self,
-602        s3_resource_path: str = "",
-603    ) -> PolarsConnectionSettings:
-604        """
-605        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-606        initiate an S3 connection from Polars
-607        """
-608        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
-609        try:
-610            raw_obj = self.post(
-611                f"/w/{self.workspace}/job_helpers/v2/polars_connection_settings",
-612                json={}
-613                if s3_resource_path == ""
-614                else {"s3_resource_path": s3_resource_path},
-615            ).json()
-616            return PolarsConnectionSettings(raw_obj)
-617        except JSONDecodeError as e:
-618            raise Exception(
-619                "Could not generate Polars S3 connection settings from the provided resource"
-620            ) from e
-621
-622    def get_boto3_connection_settings(
-623        self,
-624        s3_resource_path: str = "",
-625    ) -> Boto3ConnectionSettings:
-626        """
-627        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-628        initiate an S3 connection using boto3
-629        """
-630        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
-631        try:
-632            s3_resource = self.post(
-633                f"/w/{self.workspace}/job_helpers/v2/s3_resource_info",
-634                json={}
-635                if s3_resource_path == ""
-636                else {"s3_resource_path": s3_resource_path},
-637            ).json()
-638            return self.__boto3_connection_settings(s3_resource)
-639        except JSONDecodeError as e:
-640            raise Exception(
-641                "Could not generate Boto3 S3 connection settings from the provided resource"
-642            ) from e
-643
-644    def load_s3_file(self, s3object: S3Object | str, s3_resource_path: str | None) -> bytes:
-645        """
-646        Load a file from the workspace s3 bucket and returns its content as bytes.
-647
-648        '''python
-649        from wmill import S3Object
-650
-651        s3_obj = S3Object(s3="/path/to/my_file.txt")
-652        my_obj_content = client.load_s3_file(s3_obj)
-653        file_content = my_obj_content.decode("utf-8")
-654        '''
-655        """
-656        s3object = parse_s3_object(s3object)
-657        with self.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
-658            return file_reader.read()
-659
-660    def load_s3_file_reader(
-661        self, s3object: S3Object | str, s3_resource_path: str | None
-662    ) -> BufferedReader:
-663        """
-664        Load a file from the workspace s3 bucket and returns the bytes stream.
-665
-666        '''python
-667        from wmill import S3Object
-668
-669        s3_obj = S3Object(s3="/path/to/my_file.txt")
-670        with wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
-671            print(file_reader.read())
-672        '''
-673        """
-674        s3object = parse_s3_object(s3object)
-675        reader = S3BufferedReader(
-676            f"{self.workspace}",
-677            self.client,
-678            s3object["s3"],
-679            s3_resource_path,
-680            s3object["storage"] if "storage" in s3object else None,
-681        )
-682        return reader
-683
-684    def write_s3_file(
-685        self,
-686        s3object: S3Object | str | None,
-687        file_content: BufferedReader | bytes,
-688        s3_resource_path: str | None,
-689        content_type: str | None = None,
-690        content_disposition: str | None = None,
-691    ) -> S3Object:
-692        """
-693        Write a file to the workspace S3 bucket
-694
-695        '''python
-696        from wmill import S3Object
-697
-698        s3_obj = S3Object(s3="/path/to/my_file.txt")
-699
-700        # for an in memory bytes array:
-701        file_content = b'Hello Windmill!'
-702        client.write_s3_file(s3_obj, file_content)
-703
-704        # for a file:
-705        with open("my_file.txt", "rb") as my_file:
-706            client.write_s3_file(s3_obj, my_file)
-707        '''
-708        """
-709        s3object = parse_s3_object(s3object)
-710        # httpx accepts either bytes or "a bytes generator" as content. If it's a BufferedReader, we need to convert it to a generator
-711        if isinstance(file_content, BufferedReader):
-712            content_payload = bytes_generator(file_content)
-713        elif isinstance(file_content, bytes):
-714            content_payload = file_content
-715        else:
-716            raise Exception("Type of file_content not supported")
-717
-718        query_params = {}
-719        if s3object is not None and s3object["s3"] != "":
-720            query_params["file_key"] = s3object["s3"]
-721        if s3_resource_path is not None and s3_resource_path != "":
-722            query_params["s3_resource_path"] = s3_resource_path
-723        if (
-724            s3object is not None
-725            and "storage" in s3object
-726            and s3object["storage"] is not None
-727        ):
-728            query_params["storage"] = s3object["storage"]
-729        if content_type is not None:
-730            query_params["content_type"] = content_type
-731        if content_disposition is not None:
-732            query_params["content_disposition"] = content_disposition
-733
-734        try:
-735            # need a vanilla client b/c content-type is not application/json here
-736            response = httpx.post(
-737                f"{self.base_url}/w/{self.workspace}/job_helpers/upload_s3_file",
-738                headers={
-739                    "Authorization": f"Bearer {self.token}",
-740                    "Content-Type": "application/octet-stream",
-741                },
-742                params=query_params,
-743                content=content_payload,
-744                verify=self.verify,
-745                timeout=None,
-746            ).json()
-747        except Exception as e:
-748            raise Exception("Could not write file to S3") from e
-749        return S3Object(s3=response["file_key"])
-750
-751    def sign_s3_objects(self, s3_objects: list[S3Object | str]) -> list[S3Object]:
-752        return self.post(
-753            f"/w/{self.workspace}/apps/sign_s3_objects", json={"s3_objects": list(map(parse_s3_object, s3_objects))}
-754        ).json()
-755
-756    def sign_s3_object(self, s3_object: S3Object | str) -> S3Object:
-757        return self.post(
-758            f"/w/{self.workspace}/apps/sign_s3_objects",
-759            json={"s3_objects": [s3_object]},
-760        ).json()[0]
-761
-762    def __boto3_connection_settings(self, s3_resource) -> Boto3ConnectionSettings:
-763        endpoint_url_prefix = "https://" if s3_resource["useSSL"] else "http://"
-764        return Boto3ConnectionSettings(
-765            {
-766                "endpoint_url": "{}{}".format(
-767                    endpoint_url_prefix, s3_resource["endPoint"]
-768                ),
-769                "region_name": s3_resource["region"],
-770                "use_ssl": s3_resource["useSSL"],
-771                "aws_access_key_id": s3_resource["accessKey"],
-772                "aws_secret_access_key": s3_resource["secretKey"],
-773                # no need for path_style here as boto3 is clever enough to determine which one to use
-774            }
-775        )
-776
-777    def whoami(self) -> dict:
-778        return self.get("/users/whoami").json()
-779
-780    @property
-781    def user(self) -> dict:
-782        return self.whoami()
-783
-784    @property
-785    def state_path(self) -> str:
-786        state_path = os.environ.get(
-787            "WM_STATE_PATH_NEW", os.environ.get("WM_STATE_PATH")
-788        )
-789        if state_path is None:
-790            raise Exception("State path not found")
-791        return state_path
-792
-793    @property
-794    def state(self) -> Any:
-795        return self.get_resource(path=self.state_path, none_if_undefined=True)
-796
-797    @state.setter
-798    def state(self, value: Any) -> None:
-799        self.set_state(value)
-800
-801    @staticmethod
-802    def set_shared_state_pickle(value: Any, path: str = "state.pickle") -> None:
-803        """
-804        Set the state in the shared folder using pickle
-805        """
-806        import pickle
-807
-808        with open(f"/shared/{path}", "wb") as handle:
-809            pickle.dump(value, handle, protocol=pickle.HIGHEST_PROTOCOL)
-810
-811    @staticmethod
-812    def get_shared_state_pickle(path: str = "state.pickle") -> Any:
-813        """
-814        Get the state in the shared folder using pickle
-815        """
-816        import pickle
-817
-818        with open(f"/shared/{path}", "rb") as handle:
-819            return pickle.load(handle)
-820
-821    @staticmethod
-822    def set_shared_state(value: Any, path: str = "state.json") -> None:
-823        """
-824        Set the state in the shared folder using pickle
-825        """
-826        import json
-827
-828        with open(f"/shared/{path}", "w", encoding="utf-8") as f:
-829            json.dump(value, f, ensure_ascii=False, indent=4)
-830
-831    @staticmethod
-832    def get_shared_state(path: str = "state.json") -> None:
-833        """
-834        Get the state in the shared folder using pickle
-835        """
-836        import json
-837
-838        with open(f"/shared/{path}", "r", encoding="utf-8") as f:
-839            return json.load(f)
-840
-841    def get_resume_urls(self, approver: str = None) -> dict:
-842        nonce = random.randint(0, 1000000000)
-843        job_id = os.environ.get("WM_JOB_ID") or "NO_ID"
-844        return self.get(
-845            f"/w/{self.workspace}/jobs/resume_urls/{job_id}/{nonce}",
-846            params={"approver": approver},
-847        ).json()
-848
-849    def request_interactive_slack_approval(
-850        self,
-851        slack_resource_path: str,
-852        channel_id: str,
-853        message: str = None,
-854        approver: str = None,
-855        default_args_json: dict = None,
-856        dynamic_enums_json: dict = None,
-857    ) -> None:
-858        """
-859        Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields.
-860
-861        **[Enterprise Edition Only]** To include form fields in the Slack approval request, use the "Advanced -> Suspend -> Form" functionality.
-862        Learn more at: https://www.windmill.dev/docs/flows/flow_approval#form
-863
-864        :param slack_resource_path: The path to the Slack resource in Windmill.
-865        :type slack_resource_path: str
-866        :param channel_id: The Slack channel ID where the approval request will be sent.
-867        :type channel_id: str
-868        :param message: Optional custom message to include in the Slack approval request.
-869        :type message: str, optional
-870        :param approver: Optional user ID or name of the approver for the request.
-871        :type approver: str, optional
-872        :param default_args_json: Optional dictionary defining or overriding the default arguments for form fields.
-873        :type default_args_json: dict, optional
-874        :param dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields.
-875        :type dynamic_enums_json: dict, optional
-876
-877        :raises Exception: If the function is not called within a flow or flow preview.
-878        :raises Exception: If the required flow job or flow step environment variables are not set.
-879
-880        :return: None
-881
-882        **Usage Example:**
-883            >>> client.request_interactive_slack_approval(
-884            ...     slack_resource_path="/u/alex/my_slack_resource",
-885            ...     channel_id="admins-slack-channel",
-886            ...     message="Please approve this request",
-887            ...     approver="approver123",
-888            ...     default_args_json={"key1": "value1", "key2": 42},
-889            ...     dynamic_enums_json={"foo": ["choice1", "choice2"], "bar": ["optionA", "optionB"]},
-890            ... )
-891
-892        **Notes:**
-893        - This function must be executed within a Windmill flow or flow preview.
-894        - The function checks for required environment variables (`WM_FLOW_JOB_ID`, `WM_FLOW_STEP_ID`) to ensure it is run in the appropriate context.
-895        """
-896        workspace = self.workspace
-897        flow_job_id = os.environ.get("WM_FLOW_JOB_ID")
-898
-899        if not flow_job_id:
-900            raise Exception(
-901                "You can't use 'request_interactive_slack_approval' function in a standalone script or flow step preview. Please use it in a flow or a flow preview."
-902            )
-903
-904        # Only include non-empty parameters
-905        params = {}
-906        if message:
-907            params["message"] = message
-908        if approver:
-909            params["approver"] = approver
-910        if slack_resource_path:
-911            params["slack_resource_path"] = slack_resource_path
-912        if channel_id:
-913            params["channel_id"] = channel_id
-914        if os.environ.get("WM_FLOW_STEP_ID"):
-915            params["flow_step_id"] = os.environ.get("WM_FLOW_STEP_ID")
-916        if default_args_json:
-917            params["default_args_json"] = json.dumps(default_args_json)
-918        if dynamic_enums_json:
-919            params["dynamic_enums_json"] = json.dumps(dynamic_enums_json)
-920
-921        self.get(
-922            f"/w/{workspace}/jobs/slack_approval/{os.environ.get('WM_JOB_ID', 'NO_JOB_ID')}",
-923            params=params,
-924        )
-925
-926    def username_to_email(self, username: str) -> str:
-927        """
-928        Get email from workspace username
-929        This method is particularly useful for apps that require the email address of the viewer.
-930        Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.
-931        """
-932        return self.get(f"/w/{self.workspace}/users/username_to_email/{username}").text
-933
-934    def send_teams_message(
-935        self,
-936        conversation_id: str,
-937        text: str,
-938        success: bool = True,
-939        card_block: dict = None,
-940    ):
-941        """
-942        Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message
-943        """
-944        return self.post(
-945            f"/teams/activities",
-946            json={
-947                "conversation_id": conversation_id,
-948                "text": text,
-949                "success": success,
-950                "card_block": card_block,
-951            },
-952        )
+            
  35class Windmill:
+  36    def __init__(self, base_url=None, token=None, workspace=None, verify=True):
+  37        base = (
+  38            base_url
+  39            or os.environ.get("BASE_INTERNAL_URL")
+  40            or os.environ.get("WM_BASE_URL")
+  41        )
+  42
+  43        self.base_url = f"{base}/api"
+  44        self.token = token or os.environ.get("WM_TOKEN")
+  45        self.headers = {
+  46            "Content-Type": "application/json",
+  47            "Authorization": f"Bearer {self.token}",
+  48        }
+  49        self.verify = verify
+  50        self.client = self.get_client()
+  51        self.workspace = workspace or os.environ.get("WM_WORKSPACE")
+  52        self.path = os.environ.get("WM_JOB_PATH")
+  53
+  54        self.mocked_api = self.get_mocked_api()
+  55
+  56        assert self.workspace, (
+  57            f"workspace required as an argument or as WM_WORKSPACE environment variable"
+  58        )
+  59
+  60    def get_mocked_api(self) -> Optional[dict]:
+  61        mocked_path = os.environ.get("WM_MOCKED_API_FILE")
+  62        if not mocked_path:
+  63            return None
+  64        logger.info("Using mocked API from %s", mocked_path)
+  65        mocked_api = {"variables": {}, "resources": {}}
+  66        try:
+  67            with open(mocked_path, "r") as f:
+  68                incoming_mocked_api = json.load(f)
+  69            mocked_api = {**mocked_api, **incoming_mocked_api}
+  70        except Exception as e:
+  71            logger.warning(
+  72                "Error parsing mocked API file at path %s Using empty mocked API.",
+  73                mocked_path,
+  74            )
+  75            logger.debug(e)
+  76        return mocked_api
+  77
+  78    def get_client(self) -> httpx.Client:
+  79        return httpx.Client(
+  80            base_url=self.base_url,
+  81            headers=self.headers,
+  82            verify=self.verify,
+  83        )
+  84
+  85    def get(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:
+  86        endpoint = endpoint.lstrip("/")
+  87        resp = self.client.get(f"/{endpoint}", **kwargs)
+  88        if raise_for_status:
+  89            try:
+  90                resp.raise_for_status()
+  91            except httpx.HTTPStatusError as err:
+  92                error = f"{err.request.url}: {err.response.status_code}, {err.response.text}"
+  93                logger.error(error)
+  94                raise Exception(error)
+  95        return resp
+  96
+  97    def post(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:
+  98        endpoint = endpoint.lstrip("/")
+  99        resp = self.client.post(f"/{endpoint}", **kwargs)
+ 100        if raise_for_status:
+ 101            try:
+ 102                resp.raise_for_status()
+ 103            except httpx.HTTPStatusError as err:
+ 104                error = f"{err.request.url}: {err.response.status_code}, {err.response.text}"
+ 105                logger.error(error)
+ 106                raise Exception(error)
+ 107        return resp
+ 108
+ 109    def create_token(self, duration=dt.timedelta(days=1)) -> str:
+ 110        endpoint = "/users/tokens/create"
+ 111        payload = {
+ 112            "label": f"refresh {time.time()}",
+ 113            "expiration": (dt.datetime.now() + duration).strftime("%Y-%m-%dT%H:%M:%SZ"),
+ 114        }
+ 115        return self.post(endpoint, json=payload).text
+ 116
+ 117    def run_script_async(
+ 118        self,
+ 119        path: str = None,
+ 120        hash_: str = None,
+ 121        args: dict = None,
+ 122        scheduled_in_secs: int = None,
+ 123    ) -> str:
+ 124        """Create a script job and return its job id.
+ 125        
+ 126        .. deprecated:: Use run_script_by_path_async or run_script_by_hash_async instead.
+ 127        """
+ 128        logging.warning(
+ 129            "run_script_async is deprecated. Use run_script_by_path_async or run_script_by_hash_async instead.",
+ 130        )
+ 131        assert not (path and hash_), "path and hash_ are mutually exclusive"
+ 132        return self._run_script_async_internal(path=path, hash_=hash_, args=args, scheduled_in_secs=scheduled_in_secs)
+ 133
+ 134    def _run_script_async_internal(
+ 135        self,
+ 136        path: str = None,
+ 137        hash_: str = None,
+ 138        args: dict = None,
+ 139        scheduled_in_secs: int = None,
+ 140    ) -> str:
+ 141        """Internal helper for running scripts asynchronously."""
+ 142        args = args or {}
+ 143        params = {"scheduled_in_secs": scheduled_in_secs} if scheduled_in_secs else {}
+ 144        if os.environ.get("WM_JOB_ID"):
+ 145            params["parent_job"] = os.environ.get("WM_JOB_ID")
+ 146        if os.environ.get("WM_ROOT_FLOW_JOB_ID"):
+ 147            params["root_job"] = os.environ.get("WM_ROOT_FLOW_JOB_ID")
+ 148        
+ 149        if path:
+ 150            endpoint = f"/w/{self.workspace}/jobs/run/p/{path}"
+ 151        elif hash_:
+ 152            endpoint = f"/w/{self.workspace}/jobs/run/h/{hash_}"
+ 153        else:
+ 154            raise Exception("path or hash_ must be provided")
+ 155        
+ 156        return self.post(endpoint, json=args, params=params).text
+ 157
+ 158    def run_script_by_path_async(
+ 159        self,
+ 160        path: str,
+ 161        args: dict = None,
+ 162        scheduled_in_secs: int = None,
+ 163    ) -> str:
+ 164        """Create a script job by path and return its job id."""
+ 165        return self._run_script_async_internal(path=path, args=args, scheduled_in_secs=scheduled_in_secs)
+ 166
+ 167    def run_script_by_hash_async(
+ 168        self,
+ 169        hash_: str,
+ 170        args: dict = None,
+ 171        scheduled_in_secs: int = None,
+ 172    ) -> str:
+ 173        """Create a script job by hash and return its job id."""
+ 174        return self._run_script_async_internal(hash_=hash_, args=args, scheduled_in_secs=scheduled_in_secs)
+ 175
+ 176    def run_flow_async(
+ 177        self,
+ 178        path: str,
+ 179        args: dict = None,
+ 180        scheduled_in_secs: int = None,
+ 181        # can only be set to false if this the job will be fully await and not concurrent with any other job
+ 182        # as otherwise the child flow and its own child will store their state in the parent job which will
+ 183        # lead to incorrectness and failures
+ 184        do_not_track_in_parent: bool = True,
+ 185    ) -> str:
+ 186        """Create a flow job and return its job id."""
+ 187        args = args or {}
+ 188        params = {"scheduled_in_secs": scheduled_in_secs} if scheduled_in_secs else {}
+ 189        if not do_not_track_in_parent:
+ 190            if os.environ.get("WM_JOB_ID"):
+ 191                params["parent_job"] = os.environ.get("WM_JOB_ID")
+ 192            if os.environ.get("WM_ROOT_FLOW_JOB_ID"):
+ 193                params["root_job"] = os.environ.get("WM_ROOT_FLOW_JOB_ID")
+ 194        if path:
+ 195            endpoint = f"/w/{self.workspace}/jobs/run/f/{path}"
+ 196        else:
+ 197            raise Exception("path must be provided")
+ 198        return self.post(endpoint, json=args, params=params).text
+ 199
+ 200    def run_script(
+ 201        self,
+ 202        path: str = None,
+ 203        hash_: str = None,
+ 204        args: dict = None,
+ 205        timeout: dt.timedelta | int | float | None = None,
+ 206        verbose: bool = False,
+ 207        cleanup: bool = True,
+ 208        assert_result_is_not_none: bool = False,
+ 209    ) -> Any:
+ 210        """Run script synchronously and return its result.
+ 211        
+ 212        .. deprecated:: Use run_script_by_path or run_script_by_hash instead.
+ 213        """
+ 214        logging.warning(
+ 215            "run_script is deprecated. Use run_script_by_path or run_script_by_hash instead.",
+ 216        )
+ 217        assert not (path and hash_), "path and hash_ are mutually exclusive"
+ 218        return self._run_script_internal(
+ 219            path=path, hash_=hash_, args=args, timeout=timeout, verbose=verbose,
+ 220            cleanup=cleanup, assert_result_is_not_none=assert_result_is_not_none
+ 221        )
+ 222
+ 223    def _run_script_internal(
+ 224        self,
+ 225        path: str = None,
+ 226        hash_: str = None,
+ 227        args: dict = None,
+ 228        timeout: dt.timedelta | int | float | None = None,
+ 229        verbose: bool = False,
+ 230        cleanup: bool = True,
+ 231        assert_result_is_not_none: bool = False,
+ 232    ) -> Any:
+ 233        """Internal helper for running scripts synchronously."""
+ 234        args = args or {}
+ 235
+ 236        if verbose:
+ 237            if path:
+ 238                logger.info(f"running `{path}` synchronously with {args = }")
+ 239            elif hash_:
+ 240                logger.info(f"running script with hash `{hash_}` synchronously with {args = }")
+ 241
+ 242        if isinstance(timeout, dt.timedelta):
+ 243            timeout = timeout.total_seconds()
+ 244
+ 245        job_id = self._run_script_async_internal(path=path, hash_=hash_, args=args)
+ 246        return self.wait_job(
+ 247            job_id, timeout, verbose, cleanup, assert_result_is_not_none
+ 248        )
+ 249
+ 250    def run_script_by_path(
+ 251        self,
+ 252        path: str,
+ 253        args: dict = None,
+ 254        timeout: dt.timedelta | int | float | None = None,
+ 255        verbose: bool = False,
+ 256        cleanup: bool = True,
+ 257        assert_result_is_not_none: bool = False,
+ 258    ) -> Any:
+ 259        """Run script by path synchronously and return its result."""
+ 260        return self._run_script_internal(
+ 261            path=path, args=args, timeout=timeout, verbose=verbose,
+ 262            cleanup=cleanup, assert_result_is_not_none=assert_result_is_not_none
+ 263        )
+ 264
+ 265    def run_script_by_hash(
+ 266        self,
+ 267        hash_: str,
+ 268        args: dict = None,
+ 269        timeout: dt.timedelta | int | float | None = None,
+ 270        verbose: bool = False,
+ 271        cleanup: bool = True,
+ 272        assert_result_is_not_none: bool = False,
+ 273    ) -> Any:
+ 274        """Run script by hash synchronously and return its result."""
+ 275        return self._run_script_internal(
+ 276            hash_=hash_, args=args, timeout=timeout, verbose=verbose,
+ 277            cleanup=cleanup, assert_result_is_not_none=assert_result_is_not_none
+ 278        )
+ 279
+ 280    def run_inline_script_preview(
+ 281        self,
+ 282        content: str,
+ 283        language: str,
+ 284        args: dict = None,
+ 285    ) -> Any:
+ 286        """Run a script on the current worker without creating a job"""
+ 287        endpoint = f"/w/{self.workspace}/jobs/run_inline/preview"
+ 288        body = {
+ 289            "content": content,
+ 290            "language": language,
+ 291            "args": args or {},
+ 292        }
+ 293        return self.post(endpoint, json=body).text
+ 294
+ 295    def wait_job(
+ 296        self,
+ 297        job_id,
+ 298        timeout: dt.timedelta | int | float | None = None,
+ 299        verbose: bool = False,
+ 300        cleanup: bool = True,
+ 301        assert_result_is_not_none: bool = False,
+ 302    ):
+ 303        def cancel_job():
+ 304            logger.warning(f"cancelling job: {job_id}")
+ 305            self.post(
+ 306                f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
+ 307                json={"reason": "parent script cancelled"},
+ 308            ).raise_for_status()
+ 309
+ 310        if cleanup:
+ 311            atexit.register(cancel_job)
+ 312
+ 313        start_time = time.time()
+ 314
+ 315        if isinstance(timeout, dt.timedelta):
+ 316            timeout = timeout.total_seconds()
+ 317
+ 318        while True:
+ 319            result_res = self.get(
+ 320                f"/w/{self.workspace}/jobs_u/completed/get_result_maybe/{job_id}", True
+ 321            ).json()
+ 322
+ 323            started = result_res["started"]
+ 324            completed = result_res["completed"]
+ 325            success = result_res["success"]
+ 326
+ 327            if not started and verbose:
+ 328                logger.info(f"job {job_id} has not started yet")
+ 329
+ 330            if cleanup and completed:
+ 331                atexit.unregister(cancel_job)
+ 332
+ 333            if completed:
+ 334                result = result_res["result"]
+ 335                if success:
+ 336                    if result is None and assert_result_is_not_none:
+ 337                        raise Exception("Result was none")
+ 338                    return result
+ 339                else:
+ 340                    error = result["error"]
+ 341                    raise Exception(f"Job {job_id} was not successful: {str(error)}")
+ 342
+ 343            if timeout and ((time.time() - start_time) > timeout):
+ 344                msg = "reached timeout"
+ 345                logger.warning(msg)
+ 346                self.post(
+ 347                    f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
+ 348                    json={"reason": msg},
+ 349                )
+ 350                raise TimeoutError(msg)
+ 351            if verbose:
+ 352                logger.info(f"sleeping 0.5 seconds for {job_id = }")
+ 353
+ 354            time.sleep(0.5)
+ 355
+ 356    def cancel_job(self, job_id: str, reason: str = None) -> str:
+ 357        """Cancel a specific job by ID.
+ 358
+ 359        Args:
+ 360            job_id: UUID of the job to cancel
+ 361            reason: Optional reason for cancellation
+ 362
+ 363        Returns:
+ 364            Response message from the cancel endpoint
+ 365        """
+ 366        logger.info(f"cancelling job: {job_id}")
+ 367
+ 368        payload = {"reason": reason or "cancelled via cancel_job method"}
+ 369
+ 370        response = self.post(
+ 371            f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
+ 372            json=payload,
+ 373        )
+ 374
+ 375        return response.text
+ 376
+ 377    def cancel_running(self) -> dict:
+ 378        """Cancel currently running executions of the same script."""
+ 379        logger.info("canceling running executions of this script")
+ 380
+ 381        jobs = self.get(
+ 382            f"/w/{self.workspace}/jobs/list",
+ 383            params={
+ 384                "running": "true",
+ 385                "script_path_exact": self.path,
+ 386            },
+ 387        ).json()
+ 388
+ 389        current_job_id = os.environ.get("WM_JOB_ID")
+ 390
+ 391        logger.debug(f"{current_job_id = }")
+ 392
+ 393        job_ids = [j["id"] for j in jobs if j["id"] != current_job_id]
+ 394
+ 395        if job_ids:
+ 396            logger.info(f"cancelling the following job ids: {job_ids}")
+ 397        else:
+ 398            logger.info("no previous executions to cancel")
+ 399
+ 400        result = {}
+ 401
+ 402        for id_ in job_ids:
+ 403            result[id_] = self.post(
+ 404                f"/w/{self.workspace}/jobs_u/queue/cancel/{id_}",
+ 405                json={"reason": "killed by `cancel_running` method"},
+ 406            )
+ 407
+ 408        return result
+ 409
+ 410    def get_job(self, job_id: str) -> dict:
+ 411        return self.get(f"/w/{self.workspace}/jobs_u/get/{job_id}").json()
+ 412
+ 413    def get_root_job_id(self, job_id: str | None = None) -> dict:
+ 414        job_id = job_id or os.environ.get("WM_JOB_ID")
+ 415        return self.get(f"/w/{self.workspace}/jobs_u/get_root_job_id/{job_id}").json()
+ 416
+ 417    def get_id_token(self, audience: str, expires_in: int | None = None) -> str:
+ 418        params = {}
+ 419        if expires_in is not None:
+ 420            params["expires_in"] = expires_in
+ 421        return self.post(f"/w/{self.workspace}/oidc/token/{audience}", params=params).text
+ 422
+ 423    def get_job_status(self, job_id: str) -> JobStatus:
+ 424        job = self.get_job(job_id)
+ 425        job_type = job.get("type", "")
+ 426        assert job_type, f"{job} is not a valid job"
+ 427        if job_type.lower() == "completedjob":
+ 428            return "COMPLETED"
+ 429        if job.get("running"):
+ 430            return "RUNNING"
+ 431        return "WAITING"
+ 432
+ 433    def get_result(
+ 434        self,
+ 435        job_id: str,
+ 436        assert_result_is_not_none: bool = True,
+ 437    ) -> Any:
+ 438        result = self.get(f"/w/{self.workspace}/jobs_u/completed/get_result/{job_id}")
+ 439        result_text = result.text
+ 440        if assert_result_is_not_none and result_text is None:
+ 441            raise Exception(f"result is None for {job_id = }")
+ 442        try:
+ 443            return result.json()
+ 444        except JSONDecodeError:
+ 445            return result_text
+ 446
+ 447    def get_variable(self, path: str) -> str:
+ 448        path = parse_variable_syntax(path) or path
+ 449        if self.mocked_api is not None:
+ 450            variables = self.mocked_api["variables"]
+ 451            try:
+ 452                result = variables[path]
+ 453                return result
+ 454            except KeyError:
+ 455                logger.info(
+ 456                    f"MockedAPI present, but variable not found at {path}, falling back to real API"
+ 457                )
+ 458
+ 459        """Get variable from Windmill"""
+ 460        return self.get(f"/w/{self.workspace}/variables/get_value/{path}").json()
+ 461
+ 462    def set_variable(self, path: str, value: str, is_secret: bool = False) -> None:
+ 463        path = parse_variable_syntax(path) or path
+ 464        if self.mocked_api is not None:
+ 465            self.mocked_api["variables"][path] = value
+ 466            return
+ 467
+ 468        """Set variable from Windmill"""
+ 469        # check if variable exists
+ 470        r = self.get(
+ 471            f"/w/{self.workspace}/variables/get/{path}", raise_for_status=False
+ 472        )
+ 473        if r.status_code == 404:
+ 474            # create variable
+ 475            self.post(
+ 476                f"/w/{self.workspace}/variables/create",
+ 477                json={
+ 478                    "path": path,
+ 479                    "value": value,
+ 480                    "is_secret": is_secret,
+ 481                    "description": "",
+ 482                },
+ 483            )
+ 484        else:
+ 485            # update variable
+ 486            self.post(
+ 487                f"/w/{self.workspace}/variables/update/{path}",
+ 488                json={"value": value},
+ 489            )
+ 490
+ 491    def get_resource(
+ 492        self,
+ 493        path: str,
+ 494        none_if_undefined: bool = False,
+ 495    ) -> dict | None:
+ 496        path = parse_resource_syntax(path) or path
+ 497        if self.mocked_api is not None:
+ 498            resources = self.mocked_api["resources"]
+ 499            try:
+ 500                result = resources[path]
+ 501                return result
+ 502            except KeyError:
+ 503                # NOTE: should mocked_api respect `none_if_undefined`?
+ 504                if none_if_undefined:
+ 505                    logger.info(
+ 506                        f"resource not found at ${path}, but none_if_undefined is True, so returning None"
+ 507                    )
+ 508                    return None
+ 509                logger.info(
+ 510                    f"MockedAPI present, but resource not found at ${path}, falling back to real API"
+ 511                )
+ 512
+ 513        """Get resource from Windmill"""
+ 514        try:
+ 515            return self.get(
+ 516                f"/w/{self.workspace}/resources/get_value_interpolated/{path}"
+ 517            ).json()
+ 518        except Exception as e:
+ 519            if none_if_undefined:
+ 520                return None
+ 521            logger.error(e)
+ 522            raise e
+ 523
+ 524    def set_resource(
+ 525        self,
+ 526        value: Any,
+ 527        path: str,
+ 528        resource_type: str,
+ 529    ):
+ 530        path = parse_resource_syntax(path) or path
+ 531        if self.mocked_api is not None:
+ 532            self.mocked_api["resources"][path] = value
+ 533            return
+ 534
+ 535        # check if resource exists
+ 536        r = self.get(
+ 537            f"/w/{self.workspace}/resources/get/{path}", raise_for_status=False
+ 538        )
+ 539        if r.status_code == 404:
+ 540            # create resource
+ 541            self.post(
+ 542                f"/w/{self.workspace}/resources/create",
+ 543                json={
+ 544                    "path": path,
+ 545                    "value": value,
+ 546                    "resource_type": resource_type,
+ 547                },
+ 548            )
+ 549        else:
+ 550            # update resource
+ 551            self.post(
+ 552                f"/w/{self.workspace}/resources/update_value/{path}",
+ 553                json={"value": value},
+ 554            )
+ 555
+ 556    def list_resources(
+ 557        self,
+ 558        resource_type: str = None,
+ 559        page: int = None,
+ 560        per_page: int = None,
+ 561    ) -> list[dict]:
+ 562        """List resources from Windmill workspace.
+ 563        
+ 564        Args:
+ 565            resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3")
+ 566            page: Optional page number for pagination
+ 567            per_page: Optional number of results per page
+ 568            
+ 569        Returns:
+ 570            List of resource dictionaries
+ 571        """
+ 572        params = {}
+ 573        if resource_type is not None:
+ 574            params["resource_type"] = resource_type
+ 575        if page is not None:
+ 576            params["page"] = page
+ 577        if per_page is not None:
+ 578            params["per_page"] = per_page
+ 579            
+ 580        return self.get(
+ 581            f"/w/{self.workspace}/resources/list",
+ 582            params=params if params else None,
+ 583        ).json()
+ 584    
+ 585    def set_state(self, value: Any):
+ 586        self.set_resource(value, path=self.state_path, resource_type="state")
+ 587
+ 588    def set_progress(self, value: int, job_id: Optional[str] = None):
+ 589        workspace = get_workspace()
+ 590        flow_id = os.environ.get("WM_FLOW_JOB_ID")
+ 591        job_id = job_id or os.environ.get("WM_JOB_ID")
+ 592
+ 593        if job_id != None:
+ 594            job = self.get_job(job_id)
+ 595            flow_id = job.get("parent_job")
+ 596
+ 597        self.post(
+ 598            f"/w/{workspace}/job_metrics/set_progress/{job_id}",
+ 599            json={
+ 600                "percent": value,
+ 601                "flow_job_id": flow_id or None,
+ 602            },
+ 603        )
+ 604
+ 605    def get_progress(self, job_id: Optional[str] = None) -> Any:
+ 606        workspace = get_workspace()
+ 607        job_id = job_id or os.environ.get("WM_JOB_ID")
+ 608
+ 609        r = self.get(
+ 610            f"/w/{workspace}/job_metrics/get_progress/{job_id}",
+ 611        )
+ 612        if r.status_code == 404:
+ 613            print(f"Job {job_id} does not exist")
+ 614            return None
+ 615        else:
+ 616            return r.json()
+ 617
+ 618    def set_flow_user_state(self, key: str, value: Any) -> None:
+ 619        """Set the user state of a flow at a given key"""
+ 620        flow_id = self.get_root_job_id()
+ 621        r = self.post(
+ 622            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
+ 623            json=value,
+ 624            raise_for_status=False,
+ 625        )
+ 626        if r.status_code == 404:
+ 627            print(f"Job {flow_id} does not exist or is not a flow")
+ 628
+ 629    def get_flow_user_state(self, key: str) -> Any:
+ 630        """Get the user state of a flow at a given key"""
+ 631        flow_id = self.get_root_job_id()
+ 632        r = self.get(
+ 633            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
+ 634            raise_for_status=False,
+ 635        )
+ 636        if r.status_code == 404:
+ 637            print(f"Job {flow_id} does not exist or is not a flow")
+ 638            return None
+ 639        else:
+ 640            return r.json()
+ 641
+ 642    @property
+ 643    def version(self):
+ 644        return self.get("version").text
+ 645
+ 646    def get_duckdb_connection_settings(
+ 647        self,
+ 648        s3_resource_path: str = "",
+ 649    ) -> DuckDbConnectionSettings | None:
+ 650        """
+ 651        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+ 652        initiate an S3 connection from DuckDB
+ 653        """
+ 654        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
+ 655        try:
+ 656            raw_obj = self.post(
+ 657                f"/w/{self.workspace}/job_helpers/v2/duckdb_connection_settings",
+ 658                json={}
+ 659                if s3_resource_path == ""
+ 660                else {"s3_resource_path": s3_resource_path},
+ 661            ).json()
+ 662            return DuckDbConnectionSettings(raw_obj)
+ 663        except JSONDecodeError as e:
+ 664            raise Exception(
+ 665                "Could not generate DuckDB S3 connection settings from the provided resource"
+ 666            ) from e
+ 667
+ 668    def get_polars_connection_settings(
+ 669        self,
+ 670        s3_resource_path: str = "",
+ 671    ) -> PolarsConnectionSettings:
+ 672        """
+ 673        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+ 674        initiate an S3 connection from Polars
+ 675        """
+ 676        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
+ 677        try:
+ 678            raw_obj = self.post(
+ 679                f"/w/{self.workspace}/job_helpers/v2/polars_connection_settings",
+ 680                json={}
+ 681                if s3_resource_path == ""
+ 682                else {"s3_resource_path": s3_resource_path},
+ 683            ).json()
+ 684            return PolarsConnectionSettings(raw_obj)
+ 685        except JSONDecodeError as e:
+ 686            raise Exception(
+ 687                "Could not generate Polars S3 connection settings from the provided resource"
+ 688            ) from e
+ 689
+ 690    def get_boto3_connection_settings(
+ 691        self,
+ 692        s3_resource_path: str = "",
+ 693    ) -> Boto3ConnectionSettings:
+ 694        """
+ 695        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+ 696        initiate an S3 connection using boto3
+ 697        """
+ 698        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
+ 699        try:
+ 700            s3_resource = self.post(
+ 701                f"/w/{self.workspace}/job_helpers/v2/s3_resource_info",
+ 702                json={}
+ 703                if s3_resource_path == ""
+ 704                else {"s3_resource_path": s3_resource_path},
+ 705            ).json()
+ 706            return self.__boto3_connection_settings(s3_resource)
+ 707        except JSONDecodeError as e:
+ 708            raise Exception(
+ 709                "Could not generate Boto3 S3 connection settings from the provided resource"
+ 710            ) from e
+ 711
+ 712    def load_s3_file(self, s3object: S3Object | str, s3_resource_path: str | None) -> bytes:
+ 713        """
+ 714        Load a file from the workspace s3 bucket and returns its content as bytes.
+ 715
+ 716        '''python
+ 717        from wmill import S3Object
+ 718
+ 719        s3_obj = S3Object(s3="/path/to/my_file.txt")
+ 720        my_obj_content = client.load_s3_file(s3_obj)
+ 721        file_content = my_obj_content.decode("utf-8")
+ 722        '''
+ 723        """
+ 724        s3object = parse_s3_object(s3object)
+ 725        with self.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
+ 726            return file_reader.read()
+ 727
+ 728    def load_s3_file_reader(
+ 729        self, s3object: S3Object | str, s3_resource_path: str | None
+ 730    ) -> BufferedReader:
+ 731        """
+ 732        Load a file from the workspace s3 bucket and returns the bytes stream.
+ 733
+ 734        '''python
+ 735        from wmill import S3Object
+ 736
+ 737        s3_obj = S3Object(s3="/path/to/my_file.txt")
+ 738        with wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
+ 739            print(file_reader.read())
+ 740        '''
+ 741        """
+ 742        s3object = parse_s3_object(s3object)
+ 743        reader = S3BufferedReader(
+ 744            f"{self.workspace}",
+ 745            self.client,
+ 746            s3object["s3"],
+ 747            s3_resource_path,
+ 748            s3object["storage"] if "storage" in s3object else None,
+ 749        )
+ 750        return reader
+ 751
+ 752    def write_s3_file(
+ 753        self,
+ 754        s3object: S3Object | str | None,
+ 755        file_content: BufferedReader | bytes,
+ 756        s3_resource_path: str | None,
+ 757        content_type: str | None = None,
+ 758        content_disposition: str | None = None,
+ 759    ) -> S3Object:
+ 760        """
+ 761        Write a file to the workspace S3 bucket
+ 762
+ 763        '''python
+ 764        from wmill import S3Object
+ 765
+ 766        s3_obj = S3Object(s3="/path/to/my_file.txt")
+ 767
+ 768        # for an in memory bytes array:
+ 769        file_content = b'Hello Windmill!'
+ 770        client.write_s3_file(s3_obj, file_content)
+ 771
+ 772        # for a file:
+ 773        with open("my_file.txt", "rb") as my_file:
+ 774            client.write_s3_file(s3_obj, my_file)
+ 775        '''
+ 776        """
+ 777        s3object = parse_s3_object(s3object)
+ 778        # httpx accepts either bytes or "a bytes generator" as content. If it's a BufferedReader, we need to convert it to a generator
+ 779        if isinstance(file_content, BufferedReader):
+ 780            content_payload = bytes_generator(file_content)
+ 781        elif isinstance(file_content, bytes):
+ 782            content_payload = file_content
+ 783        else:
+ 784            raise Exception("Type of file_content not supported")
+ 785
+ 786        query_params = {}
+ 787        if s3object is not None and s3object["s3"] != "":
+ 788            query_params["file_key"] = s3object["s3"]
+ 789        if s3_resource_path is not None and s3_resource_path != "":
+ 790            query_params["s3_resource_path"] = s3_resource_path
+ 791        if (
+ 792            s3object is not None
+ 793            and "storage" in s3object
+ 794            and s3object["storage"] is not None
+ 795        ):
+ 796            query_params["storage"] = s3object["storage"]
+ 797        if content_type is not None:
+ 798            query_params["content_type"] = content_type
+ 799        if content_disposition is not None:
+ 800            query_params["content_disposition"] = content_disposition
+ 801
+ 802        try:
+ 803            # need a vanilla client b/c content-type is not application/json here
+ 804            response = httpx.post(
+ 805                f"{self.base_url}/w/{self.workspace}/job_helpers/upload_s3_file",
+ 806                headers={
+ 807                    "Authorization": f"Bearer {self.token}",
+ 808                    "Content-Type": "application/octet-stream",
+ 809                },
+ 810                params=query_params,
+ 811                content=content_payload,
+ 812                verify=self.verify,
+ 813                timeout=None,
+ 814            ).json()
+ 815        except Exception as e:
+ 816            raise Exception("Could not write file to S3") from e
+ 817        return S3Object(s3=response["file_key"])
+ 818
+ 819    def sign_s3_objects(self, s3_objects: list[S3Object | str]) -> list[S3Object]:
+ 820        return self.post(
+ 821            f"/w/{self.workspace}/apps/sign_s3_objects", json={"s3_objects": list(map(parse_s3_object, s3_objects))}
+ 822        ).json()
+ 823
+ 824    def sign_s3_object(self, s3_object: S3Object | str) -> S3Object:
+ 825        return self.post(
+ 826            f"/w/{self.workspace}/apps/sign_s3_objects",
+ 827            json={"s3_objects": [s3_object]},
+ 828        ).json()[0]
+ 829
+ 830    def get_presigned_s3_public_urls(
+ 831        self,
+ 832        s3_objects: list[S3Object | str],
+ 833        base_url: str | None = None,
+ 834    ) -> list[str]:
+ 835        """
+ 836        Generate presigned public URLs for an array of S3 objects.
+ 837        If an S3 object is not signed yet, it will be signed first.
+ 838
+ 839        Args:
+ 840            s3_objects: List of S3 objects to sign
+ 841            base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL)
+ 842
+ 843        Returns:
+ 844            List of signed public URLs
+ 845
+ 846        Example:
+ 847            >>> s3_objs = [S3Object(s3="/path/to/file1.txt"), S3Object(s3="/path/to/file2.txt")]
+ 848            >>> urls = client.get_presigned_s3_public_urls(s3_objs)
+ 849        """
+ 850        base_url = base_url or self._get_public_base_url()
+ 851
+ 852        s3_objs = [parse_s3_object(s3_obj) for s3_obj in s3_objects]
+ 853
+ 854        # Sign all S3 objects that need to be signed in one go
+ 855        s3_objs_to_sign: list[tuple[S3Object, int]] = [
+ 856            (s3_obj, index)
+ 857            for index, s3_obj in enumerate(s3_objs)
+ 858            if s3_obj.get("presigned") is None
+ 859        ]
+ 860
+ 861        if s3_objs_to_sign:
+ 862            print(f"Signing {len(s3_objs_to_sign)} S3 objects...")
+ 863            signed_s3_objs = self.sign_s3_objects(
+ 864                [s3_obj for s3_obj, _ in s3_objs_to_sign]
+ 865            )
+ 866            for i, (_, original_index) in enumerate(s3_objs_to_sign):
+ 867                s3_objs[original_index] = parse_s3_object(signed_s3_objs[i])
+ 868
+ 869        signed_urls: list[str] = []
+ 870        for s3_obj in s3_objs:
+ 871            s3 = s3_obj.get("s3", "")
+ 872            presigned = s3_obj.get("presigned", "")
+ 873            storage = s3_obj.get("storage", "_default_")
+ 874            signed_url = f"{base_url}/api/w/{self.workspace}/s3_proxy/{storage}/{s3}?{presigned}"
+ 875            signed_urls.append(signed_url)
+ 876
+ 877        return signed_urls
+ 878
+ 879    def get_presigned_s3_public_url(
+ 880        self,
+ 881        s3_object: S3Object | str,
+ 882        base_url: str | None = None,
+ 883    ) -> str:
+ 884        """
+ 885        Generate a presigned public URL for an S3 object.
+ 886        If the S3 object is not signed yet, it will be signed first.
+ 887
+ 888        Args:
+ 889            s3_object: S3 object to sign
+ 890            base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL)
+ 891
+ 892        Returns:
+ 893            Signed public URL
+ 894
+ 895        Example:
+ 896            >>> s3_obj = S3Object(s3="/path/to/file.txt")
+ 897            >>> url = client.get_presigned_s3_public_url(s3_obj)
+ 898        """
+ 899        urls = self.get_presigned_s3_public_urls([s3_object], base_url)
+ 900        return urls[0]
+ 901
+ 902    def _get_public_base_url(self) -> str:
+ 903        """Get the public base URL from environment or default to localhost"""
+ 904        return os.environ.get("WM_BASE_URL", "http://localhost:3000")
+ 905
+ 906    def __boto3_connection_settings(self, s3_resource) -> Boto3ConnectionSettings:
+ 907        endpoint_url_prefix = "https://" if s3_resource["useSSL"] else "http://"
+ 908        return Boto3ConnectionSettings(
+ 909            {
+ 910                "endpoint_url": "{}{}".format(
+ 911                    endpoint_url_prefix, s3_resource["endPoint"]
+ 912                ),
+ 913                "region_name": s3_resource["region"],
+ 914                "use_ssl": s3_resource["useSSL"],
+ 915                "aws_access_key_id": s3_resource["accessKey"],
+ 916                "aws_secret_access_key": s3_resource["secretKey"],
+ 917                # no need for path_style here as boto3 is clever enough to determine which one to use
+ 918            }
+ 919        )
+ 920
+ 921    def whoami(self) -> dict:
+ 922        return self.get("/users/whoami").json()
+ 923
+ 924    @property
+ 925    def user(self) -> dict:
+ 926        return self.whoami()
+ 927
+ 928    @property
+ 929    def state_path(self) -> str:
+ 930        state_path = os.environ.get(
+ 931            "WM_STATE_PATH_NEW", os.environ.get("WM_STATE_PATH")
+ 932        )
+ 933        if state_path is None:
+ 934            raise Exception("State path not found")
+ 935        return state_path
+ 936
+ 937    @property
+ 938    def state(self) -> Any:
+ 939        return self.get_resource(path=self.state_path, none_if_undefined=True)
+ 940
+ 941    @state.setter
+ 942    def state(self, value: Any) -> None:
+ 943        self.set_state(value)
+ 944
+ 945    @staticmethod
+ 946    def set_shared_state_pickle(value: Any, path: str = "state.pickle") -> None:
+ 947        """
+ 948        Set the state in the shared folder using pickle
+ 949        """
+ 950        import pickle
+ 951
+ 952        with open(f"/shared/{path}", "wb") as handle:
+ 953            pickle.dump(value, handle, protocol=pickle.HIGHEST_PROTOCOL)
+ 954
+ 955    @staticmethod
+ 956    def get_shared_state_pickle(path: str = "state.pickle") -> Any:
+ 957        """
+ 958        Get the state in the shared folder using pickle
+ 959        """
+ 960        import pickle
+ 961
+ 962        with open(f"/shared/{path}", "rb") as handle:
+ 963            return pickle.load(handle)
+ 964
+ 965    @staticmethod
+ 966    def set_shared_state(value: Any, path: str = "state.json") -> None:
+ 967        """
+ 968        Set the state in the shared folder using pickle
+ 969        """
+ 970        import json
+ 971
+ 972        with open(f"/shared/{path}", "w", encoding="utf-8") as f:
+ 973            json.dump(value, f, ensure_ascii=False, indent=4)
+ 974
+ 975    @staticmethod
+ 976    def get_shared_state(path: str = "state.json") -> None:
+ 977        """
+ 978        Get the state in the shared folder using pickle
+ 979        """
+ 980        import json
+ 981
+ 982        with open(f"/shared/{path}", "r", encoding="utf-8") as f:
+ 983            return json.load(f)
+ 984
+ 985    def get_resume_urls(self, approver: str = None) -> dict:
+ 986        nonce = random.randint(0, 1000000000)
+ 987        job_id = os.environ.get("WM_JOB_ID") or "NO_ID"
+ 988        return self.get(
+ 989            f"/w/{self.workspace}/jobs/resume_urls/{job_id}/{nonce}",
+ 990            params={"approver": approver},
+ 991        ).json()
+ 992
+ 993    def request_interactive_slack_approval(
+ 994        self,
+ 995        slack_resource_path: str,
+ 996        channel_id: str,
+ 997        message: str = None,
+ 998        approver: str = None,
+ 999        default_args_json: dict = None,
+1000        dynamic_enums_json: dict = None,
+1001    ) -> None:
+1002        """
+1003        Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields.
+1004
+1005        **[Enterprise Edition Only]** To include form fields in the Slack approval request, use the "Advanced -> Suspend -> Form" functionality.
+1006        Learn more at: https://www.windmill.dev/docs/flows/flow_approval#form
+1007
+1008        :param slack_resource_path: The path to the Slack resource in Windmill.
+1009        :type slack_resource_path: str
+1010        :param channel_id: The Slack channel ID where the approval request will be sent.
+1011        :type channel_id: str
+1012        :param message: Optional custom message to include in the Slack approval request.
+1013        :type message: str, optional
+1014        :param approver: Optional user ID or name of the approver for the request.
+1015        :type approver: str, optional
+1016        :param default_args_json: Optional dictionary defining or overriding the default arguments for form fields.
+1017        :type default_args_json: dict, optional
+1018        :param dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields.
+1019        :type dynamic_enums_json: dict, optional
+1020
+1021        :raises Exception: If the function is not called within a flow or flow preview.
+1022        :raises Exception: If the required flow job or flow step environment variables are not set.
+1023
+1024        :return: None
+1025
+1026        **Usage Example:**
+1027            >>> client.request_interactive_slack_approval(
+1028            ...     slack_resource_path="/u/alex/my_slack_resource",
+1029            ...     channel_id="admins-slack-channel",
+1030            ...     message="Please approve this request",
+1031            ...     approver="approver123",
+1032            ...     default_args_json={"key1": "value1", "key2": 42},
+1033            ...     dynamic_enums_json={"foo": ["choice1", "choice2"], "bar": ["optionA", "optionB"]},
+1034            ... )
+1035
+1036        **Notes:**
+1037        - This function must be executed within a Windmill flow or flow preview.
+1038        - The function checks for required environment variables (`WM_FLOW_JOB_ID`, `WM_FLOW_STEP_ID`) to ensure it is run in the appropriate context.
+1039        """
+1040        workspace = self.workspace
+1041        flow_job_id = os.environ.get("WM_FLOW_JOB_ID")
+1042
+1043        if not flow_job_id:
+1044            raise Exception(
+1045                "You can't use 'request_interactive_slack_approval' function in a standalone script or flow step preview. Please use it in a flow or a flow preview."
+1046            )
+1047
+1048        # Only include non-empty parameters
+1049        params = {}
+1050        if message:
+1051            params["message"] = message
+1052        if approver:
+1053            params["approver"] = approver
+1054        if slack_resource_path:
+1055            params["slack_resource_path"] = slack_resource_path
+1056        if channel_id:
+1057            params["channel_id"] = channel_id
+1058        if os.environ.get("WM_FLOW_STEP_ID"):
+1059            params["flow_step_id"] = os.environ.get("WM_FLOW_STEP_ID")
+1060        if default_args_json:
+1061            params["default_args_json"] = json.dumps(default_args_json)
+1062        if dynamic_enums_json:
+1063            params["dynamic_enums_json"] = json.dumps(dynamic_enums_json)
+1064
+1065        self.get(
+1066            f"/w/{workspace}/jobs/slack_approval/{os.environ.get('WM_JOB_ID', 'NO_JOB_ID')}",
+1067            params=params,
+1068        )
+1069
+1070    def username_to_email(self, username: str) -> str:
+1071        """
+1072        Get email from workspace username
+1073        This method is particularly useful for apps that require the email address of the viewer.
+1074        Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.
+1075        """
+1076        return self.get(f"/w/{self.workspace}/users/username_to_email/{username}").text
+1077
+1078    def send_teams_message(
+1079        self,
+1080        conversation_id: str,
+1081        text: str,
+1082        success: bool = True,
+1083        card_block: dict = None,
+1084    ):
+1085        """
+1086        Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message
+1087        """
+1088        return self.post(
+1089            f"/teams/activities",
+1090            json={
+1091                "conversation_id": conversation_id,
+1092                "text": text,
+1093                "success": success,
+1094                "card_block": card_block,
+1095            },
+1096        )
+1097
+1098    def datatable(self, name: str = "main"):
+1099        return DataTableClient(self, name)
+1100
+1101    def ducklake(self, name: str = "main"):
+1102        return DucklakeClient(self, name)
 
@@ -3403,6 +3995,39 @@
+ +
+ +
+ + def + run_inline_script_preview(self, content: str, language: str, args: dict = None) -> Any: + + + +
+ +
280    def run_inline_script_preview(
+281        self,
+282        content: str,
+283        language: str,
+284        args: dict = None,
+285    ) -> Any:
+286        """Run a script on the current worker without creating a job"""
+287        endpoint = f"/w/{self.workspace}/jobs/run_inline/preview"
+288        body = {
+289            "content": content,
+290            "language": language,
+291            "args": args or {},
+292        }
+293        return self.post(endpoint, json=body).text
+
+ + +

Run a script on the current worker without creating a job

+
+ +
@@ -3415,71 +4040,117 @@
-
280    def wait_job(
-281        self,
-282        job_id,
-283        timeout: dt.timedelta | int | float | None = None,
-284        verbose: bool = False,
-285        cleanup: bool = True,
-286        assert_result_is_not_none: bool = False,
-287    ):
-288        def cancel_job():
-289            logger.warning(f"cancelling job: {job_id}")
-290            self.post(
-291                f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
-292                json={"reason": "parent script cancelled"},
-293            ).raise_for_status()
-294
-295        if cleanup:
-296            atexit.register(cancel_job)
-297
-298        start_time = time.time()
-299
-300        if isinstance(timeout, dt.timedelta):
-301            timeout = timeout.total_seconds()
-302
-303        while True:
-304            result_res = self.get(
-305                f"/w/{self.workspace}/jobs_u/completed/get_result_maybe/{job_id}", True
-306            ).json()
-307
-308            started = result_res["started"]
-309            completed = result_res["completed"]
-310            success = result_res["success"]
-311
-312            if not started and verbose:
-313                logger.info(f"job {job_id} has not started yet")
+            
295    def wait_job(
+296        self,
+297        job_id,
+298        timeout: dt.timedelta | int | float | None = None,
+299        verbose: bool = False,
+300        cleanup: bool = True,
+301        assert_result_is_not_none: bool = False,
+302    ):
+303        def cancel_job():
+304            logger.warning(f"cancelling job: {job_id}")
+305            self.post(
+306                f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
+307                json={"reason": "parent script cancelled"},
+308            ).raise_for_status()
+309
+310        if cleanup:
+311            atexit.register(cancel_job)
+312
+313        start_time = time.time()
 314
-315            if cleanup and completed:
-316                atexit.unregister(cancel_job)
+315        if isinstance(timeout, dt.timedelta):
+316            timeout = timeout.total_seconds()
 317
-318            if completed:
-319                result = result_res["result"]
-320                if success:
-321                    if result is None and assert_result_is_not_none:
-322                        raise Exception("Result was none")
-323                    return result
-324                else:
-325                    error = result["error"]
-326                    raise Exception(f"Job {job_id} was not successful: {str(error)}")
-327
-328            if timeout and ((time.time() - start_time) > timeout):
-329                msg = "reached timeout"
-330                logger.warning(msg)
-331                self.post(
-332                    f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
-333                    json={"reason": msg},
-334                )
-335                raise TimeoutError(msg)
-336            if verbose:
-337                logger.info(f"sleeping 0.5 seconds for {job_id = }")
-338
-339            time.sleep(0.5)
+318        while True:
+319            result_res = self.get(
+320                f"/w/{self.workspace}/jobs_u/completed/get_result_maybe/{job_id}", True
+321            ).json()
+322
+323            started = result_res["started"]
+324            completed = result_res["completed"]
+325            success = result_res["success"]
+326
+327            if not started and verbose:
+328                logger.info(f"job {job_id} has not started yet")
+329
+330            if cleanup and completed:
+331                atexit.unregister(cancel_job)
+332
+333            if completed:
+334                result = result_res["result"]
+335                if success:
+336                    if result is None and assert_result_is_not_none:
+337                        raise Exception("Result was none")
+338                    return result
+339                else:
+340                    error = result["error"]
+341                    raise Exception(f"Job {job_id} was not successful: {str(error)}")
+342
+343            if timeout and ((time.time() - start_time) > timeout):
+344                msg = "reached timeout"
+345                logger.warning(msg)
+346                self.post(
+347                    f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
+348                    json={"reason": msg},
+349                )
+350                raise TimeoutError(msg)
+351            if verbose:
+352                logger.info(f"sleeping 0.5 seconds for {job_id = }")
+353
+354            time.sleep(0.5)
 
+
+
+ +
+ + def + cancel_job(self, job_id: str, reason: str = None) -> str: + + + +
+ +
356    def cancel_job(self, job_id: str, reason: str = None) -> str:
+357        """Cancel a specific job by ID.
+358
+359        Args:
+360            job_id: UUID of the job to cancel
+361            reason: Optional reason for cancellation
+362
+363        Returns:
+364            Response message from the cancel endpoint
+365        """
+366        logger.info(f"cancelling job: {job_id}")
+367
+368        payload = {"reason": reason or "cancelled via cancel_job method"}
+369
+370        response = self.post(
+371            f"/w/{self.workspace}/jobs_u/queue/cancel/{job_id}",
+372            json=payload,
+373        )
+374
+375        return response.text
+
+ + +

Cancel a specific job by ID.

+ +

Args: + job_id: UUID of the job to cancel + reason: Optional reason for cancellation

+ +

Returns: + Response message from the cancel endpoint

+
+ +
@@ -3492,38 +4163,38 @@
-
341    def cancel_running(self) -> dict:
-342        """Cancel currently running executions of the same script."""
-343        logger.info("canceling running executions of this script")
-344
-345        jobs = self.get(
-346            f"/w/{self.workspace}/jobs/list",
-347            params={
-348                "running": "true",
-349                "script_path_exact": self.path,
-350            },
-351        ).json()
-352
-353        current_job_id = os.environ.get("WM_JOB_ID")
-354
-355        logger.debug(f"{current_job_id = }")
-356
-357        job_ids = [j["id"] for j in jobs if j["id"] != current_job_id]
-358
-359        if job_ids:
-360            logger.info(f"cancelling the following job ids: {job_ids}")
-361        else:
-362            logger.info("no previous executions to cancel")
-363
-364        result = {}
-365
-366        for id_ in job_ids:
-367            result[id_] = self.post(
-368                f"/w/{self.workspace}/jobs_u/queue/cancel/{id_}",
-369                json={"reason": "killed by `cancel_running` method"},
-370            )
-371
-372        return result
+            
377    def cancel_running(self) -> dict:
+378        """Cancel currently running executions of the same script."""
+379        logger.info("canceling running executions of this script")
+380
+381        jobs = self.get(
+382            f"/w/{self.workspace}/jobs/list",
+383            params={
+384                "running": "true",
+385                "script_path_exact": self.path,
+386            },
+387        ).json()
+388
+389        current_job_id = os.environ.get("WM_JOB_ID")
+390
+391        logger.debug(f"{current_job_id = }")
+392
+393        job_ids = [j["id"] for j in jobs if j["id"] != current_job_id]
+394
+395        if job_ids:
+396            logger.info(f"cancelling the following job ids: {job_ids}")
+397        else:
+398            logger.info("no previous executions to cancel")
+399
+400        result = {}
+401
+402        for id_ in job_ids:
+403            result[id_] = self.post(
+404                f"/w/{self.workspace}/jobs_u/queue/cancel/{id_}",
+405                json={"reason": "killed by `cancel_running` method"},
+406            )
+407
+408        return result
 
@@ -3543,8 +4214,8 @@
-
374    def get_job(self, job_id: str) -> dict:
-375        return self.get(f"/w/{self.workspace}/jobs_u/get/{job_id}").json()
+            
410    def get_job(self, job_id: str) -> dict:
+411        return self.get(f"/w/{self.workspace}/jobs_u/get/{job_id}").json()
 
@@ -3562,9 +4233,9 @@
-
377    def get_root_job_id(self, job_id: str | None = None) -> dict:
-378        job_id = job_id or os.environ.get("WM_JOB_ID")
-379        return self.get(f"/w/{self.workspace}/jobs_u/get_root_job_id/{job_id}").json()
+            
413    def get_root_job_id(self, job_id: str | None = None) -> dict:
+414        job_id = job_id or os.environ.get("WM_JOB_ID")
+415        return self.get(f"/w/{self.workspace}/jobs_u/get_root_job_id/{job_id}").json()
 
@@ -3576,14 +4247,17 @@
def - get_id_token(self, audience: str) -> str: + get_id_token(self, audience: str, expires_in: int | None = None) -> str:
-
381    def get_id_token(self, audience: str) -> str:
-382        return self.post(f"/w/{self.workspace}/oidc/token/{audience}").text
+            
417    def get_id_token(self, audience: str, expires_in: int | None = None) -> str:
+418        params = {}
+419        if expires_in is not None:
+420            params["expires_in"] = expires_in
+421        return self.post(f"/w/{self.workspace}/oidc/token/{audience}", params=params).text
 
@@ -3601,15 +4275,15 @@
-
384    def get_job_status(self, job_id: str) -> JobStatus:
-385        job = self.get_job(job_id)
-386        job_type = job.get("type", "")
-387        assert job_type, f"{job} is not a valid job"
-388        if job_type.lower() == "completedjob":
-389            return "COMPLETED"
-390        if job.get("running"):
-391            return "RUNNING"
-392        return "WAITING"
+            
423    def get_job_status(self, job_id: str) -> JobStatus:
+424        job = self.get_job(job_id)
+425        job_type = job.get("type", "")
+426        assert job_type, f"{job} is not a valid job"
+427        if job_type.lower() == "completedjob":
+428            return "COMPLETED"
+429        if job.get("running"):
+430            return "RUNNING"
+431        return "WAITING"
 
@@ -3627,19 +4301,19 @@
-
394    def get_result(
-395        self,
-396        job_id: str,
-397        assert_result_is_not_none: bool = True,
-398    ) -> Any:
-399        result = self.get(f"/w/{self.workspace}/jobs_u/completed/get_result/{job_id}")
-400        result_text = result.text
-401        if assert_result_is_not_none and result_text is None:
-402            raise Exception(f"result is None for {job_id = }")
-403        try:
-404            return result.json()
-405        except JSONDecodeError:
-406            return result_text
+            
433    def get_result(
+434        self,
+435        job_id: str,
+436        assert_result_is_not_none: bool = True,
+437    ) -> Any:
+438        result = self.get(f"/w/{self.workspace}/jobs_u/completed/get_result/{job_id}")
+439        result_text = result.text
+440        if assert_result_is_not_none and result_text is None:
+441            raise Exception(f"result is None for {job_id = }")
+442        try:
+443            return result.json()
+444        except JSONDecodeError:
+445            return result_text
 
@@ -3657,20 +4331,20 @@
-
408    def get_variable(self, path: str) -> str:
-409        path = parse_variable_syntax(path) or path
-410        if self.mocked_api is not None:
-411            variables = self.mocked_api["variables"]
-412            try:
-413                result = variables[path]
-414                return result
-415            except KeyError:
-416                logger.info(
-417                    f"MockedAPI present, but variable not found at {path}, falling back to real API"
-418                )
-419
-420        """Get variable from Windmill"""
-421        return self.get(f"/w/{self.workspace}/variables/get_value/{path}").json()
+            
447    def get_variable(self, path: str) -> str:
+448        path = parse_variable_syntax(path) or path
+449        if self.mocked_api is not None:
+450            variables = self.mocked_api["variables"]
+451            try:
+452                result = variables[path]
+453                return result
+454            except KeyError:
+455                logger.info(
+456                    f"MockedAPI present, but variable not found at {path}, falling back to real API"
+457                )
+458
+459        """Get variable from Windmill"""
+460        return self.get(f"/w/{self.workspace}/variables/get_value/{path}").json()
 
@@ -3688,34 +4362,34 @@
-
423    def set_variable(self, path: str, value: str, is_secret: bool = False) -> None:
-424        path = parse_variable_syntax(path) or path
-425        if self.mocked_api is not None:
-426            self.mocked_api["variables"][path] = value
-427            return
-428
-429        """Set variable from Windmill"""
-430        # check if variable exists
-431        r = self.get(
-432            f"/w/{self.workspace}/variables/get/{path}", raise_for_status=False
-433        )
-434        if r.status_code == 404:
-435            # create variable
-436            self.post(
-437                f"/w/{self.workspace}/variables/create",
-438                json={
-439                    "path": path,
-440                    "value": value,
-441                    "is_secret": is_secret,
-442                    "description": "",
-443                },
-444            )
-445        else:
-446            # update variable
-447            self.post(
-448                f"/w/{self.workspace}/variables/update/{path}",
-449                json={"value": value},
-450            )
+            
462    def set_variable(self, path: str, value: str, is_secret: bool = False) -> None:
+463        path = parse_variable_syntax(path) or path
+464        if self.mocked_api is not None:
+465            self.mocked_api["variables"][path] = value
+466            return
+467
+468        """Set variable from Windmill"""
+469        # check if variable exists
+470        r = self.get(
+471            f"/w/{self.workspace}/variables/get/{path}", raise_for_status=False
+472        )
+473        if r.status_code == 404:
+474            # create variable
+475            self.post(
+476                f"/w/{self.workspace}/variables/create",
+477                json={
+478                    "path": path,
+479                    "value": value,
+480                    "is_secret": is_secret,
+481                    "description": "",
+482                },
+483            )
+484        else:
+485            # update variable
+486            self.post(
+487                f"/w/{self.workspace}/variables/update/{path}",
+488                json={"value": value},
+489            )
 
@@ -3733,38 +4407,38 @@
-
452    def get_resource(
-453        self,
-454        path: str,
-455        none_if_undefined: bool = False,
-456    ) -> dict | None:
-457        path = parse_resource_syntax(path) or path
-458        if self.mocked_api is not None:
-459            resources = self.mocked_api["resources"]
-460            try:
-461                result = resources[path]
-462                return result
-463            except KeyError:
-464                # NOTE: should mocked_api respect `none_if_undefined`?
-465                if none_if_undefined:
-466                    logger.info(
-467                        f"resource not found at ${path}, but none_if_undefined is True, so returning None"
-468                    )
-469                    return None
-470                logger.info(
-471                    f"MockedAPI present, but resource not found at ${path}, falling back to real API"
-472                )
-473
-474        """Get resource from Windmill"""
-475        try:
-476            return self.get(
-477                f"/w/{self.workspace}/resources/get_value_interpolated/{path}"
-478            ).json()
-479        except Exception as e:
-480            if none_if_undefined:
-481                return None
-482            logger.error(e)
-483            raise e
+            
491    def get_resource(
+492        self,
+493        path: str,
+494        none_if_undefined: bool = False,
+495    ) -> dict | None:
+496        path = parse_resource_syntax(path) or path
+497        if self.mocked_api is not None:
+498            resources = self.mocked_api["resources"]
+499            try:
+500                result = resources[path]
+501                return result
+502            except KeyError:
+503                # NOTE: should mocked_api respect `none_if_undefined`?
+504                if none_if_undefined:
+505                    logger.info(
+506                        f"resource not found at ${path}, but none_if_undefined is True, so returning None"
+507                    )
+508                    return None
+509                logger.info(
+510                    f"MockedAPI present, but resource not found at ${path}, falling back to real API"
+511                )
+512
+513        """Get resource from Windmill"""
+514        try:
+515            return self.get(
+516                f"/w/{self.workspace}/resources/get_value_interpolated/{path}"
+517            ).json()
+518        except Exception as e:
+519            if none_if_undefined:
+520                return None
+521            logger.error(e)
+522            raise e
 
@@ -3782,42 +4456,97 @@
-
485    def set_resource(
-486        self,
-487        value: Any,
-488        path: str,
-489        resource_type: str,
-490    ):
-491        path = parse_resource_syntax(path) or path
-492        if self.mocked_api is not None:
-493            self.mocked_api["resources"][path] = value
-494            return
-495
-496        # check if resource exists
-497        r = self.get(
-498            f"/w/{self.workspace}/resources/get/{path}", raise_for_status=False
-499        )
-500        if r.status_code == 404:
-501            # create resource
-502            self.post(
-503                f"/w/{self.workspace}/resources/create",
-504                json={
-505                    "path": path,
-506                    "value": value,
-507                    "resource_type": resource_type,
-508                },
-509            )
-510        else:
-511            # update resource
-512            self.post(
-513                f"/w/{self.workspace}/resources/update_value/{path}",
-514                json={"value": value},
-515            )
+            
524    def set_resource(
+525        self,
+526        value: Any,
+527        path: str,
+528        resource_type: str,
+529    ):
+530        path = parse_resource_syntax(path) or path
+531        if self.mocked_api is not None:
+532            self.mocked_api["resources"][path] = value
+533            return
+534
+535        # check if resource exists
+536        r = self.get(
+537            f"/w/{self.workspace}/resources/get/{path}", raise_for_status=False
+538        )
+539        if r.status_code == 404:
+540            # create resource
+541            self.post(
+542                f"/w/{self.workspace}/resources/create",
+543                json={
+544                    "path": path,
+545                    "value": value,
+546                    "resource_type": resource_type,
+547                },
+548            )
+549        else:
+550            # update resource
+551            self.post(
+552                f"/w/{self.workspace}/resources/update_value/{path}",
+553                json={"value": value},
+554            )
 
+
+
+ +
+ + def + list_resources( self, resource_type: str = None, page: int = None, per_page: int = None) -> list[dict]: + + + +
+ +
556    def list_resources(
+557        self,
+558        resource_type: str = None,
+559        page: int = None,
+560        per_page: int = None,
+561    ) -> list[dict]:
+562        """List resources from Windmill workspace.
+563        
+564        Args:
+565            resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3")
+566            page: Optional page number for pagination
+567            per_page: Optional number of results per page
+568            
+569        Returns:
+570            List of resource dictionaries
+571        """
+572        params = {}
+573        if resource_type is not None:
+574            params["resource_type"] = resource_type
+575        if page is not None:
+576            params["page"] = page
+577        if per_page is not None:
+578            params["per_page"] = per_page
+579            
+580        return self.get(
+581            f"/w/{self.workspace}/resources/list",
+582            params=params if params else None,
+583        ).json()
+
+ + +

List resources from Windmill workspace.

+ +

Args: + resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3") + page: Optional page number for pagination + per_page: Optional number of results per page

+ +

Returns: + List of resource dictionaries

+
+ +
@@ -3830,8 +4559,8 @@
-
517    def set_state(self, value: Any):
-518        self.set_resource(value, path=self.state_path, resource_type="state")
+            
585    def set_state(self, value: Any):
+586        self.set_resource(value, path=self.state_path, resource_type="state")
 
@@ -3849,22 +4578,22 @@
-
520    def set_progress(self, value: int, job_id: Optional[str] = None):
-521        workspace = get_workspace()
-522        flow_id = os.environ.get("WM_FLOW_JOB_ID")
-523        job_id = job_id or os.environ.get("WM_JOB_ID")
-524
-525        if job_id != None:
-526            job = self.get_job(job_id)
-527            flow_id = job.get("parent_job")
-528
-529        self.post(
-530            f"/w/{workspace}/job_metrics/set_progress/{job_id}",
-531            json={
-532                "percent": value,
-533                "flow_job_id": flow_id or None,
-534            },
-535        )
+            
588    def set_progress(self, value: int, job_id: Optional[str] = None):
+589        workspace = get_workspace()
+590        flow_id = os.environ.get("WM_FLOW_JOB_ID")
+591        job_id = job_id or os.environ.get("WM_JOB_ID")
+592
+593        if job_id != None:
+594            job = self.get_job(job_id)
+595            flow_id = job.get("parent_job")
+596
+597        self.post(
+598            f"/w/{workspace}/job_metrics/set_progress/{job_id}",
+599            json={
+600                "percent": value,
+601                "flow_job_id": flow_id or None,
+602            },
+603        )
 
@@ -3882,18 +4611,18 @@
-
537    def get_progress(self, job_id: Optional[str] = None) -> Any:
-538        workspace = get_workspace()
-539        job_id = job_id or os.environ.get("WM_JOB_ID")
-540
-541        r = self.get(
-542            f"/w/{workspace}/job_metrics/get_progress/{job_id}",
-543        )
-544        if r.status_code == 404:
-545            print(f"Job {job_id} does not exist")
-546            return None
-547        else:
-548            return r.json()
+            
605    def get_progress(self, job_id: Optional[str] = None) -> Any:
+606        workspace = get_workspace()
+607        job_id = job_id or os.environ.get("WM_JOB_ID")
+608
+609        r = self.get(
+610            f"/w/{workspace}/job_metrics/get_progress/{job_id}",
+611        )
+612        if r.status_code == 404:
+613            print(f"Job {job_id} does not exist")
+614            return None
+615        else:
+616            return r.json()
 
@@ -3911,16 +4640,16 @@
-
550    def set_flow_user_state(self, key: str, value: Any) -> None:
-551        """Set the user state of a flow at a given key"""
-552        flow_id = self.get_root_job_id()
-553        r = self.post(
-554            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
-555            json=value,
-556            raise_for_status=False,
-557        )
-558        if r.status_code == 404:
-559            print(f"Job {flow_id} does not exist or is not a flow")
+            
618    def set_flow_user_state(self, key: str, value: Any) -> None:
+619        """Set the user state of a flow at a given key"""
+620        flow_id = self.get_root_job_id()
+621        r = self.post(
+622            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
+623            json=value,
+624            raise_for_status=False,
+625        )
+626        if r.status_code == 404:
+627            print(f"Job {flow_id} does not exist or is not a flow")
 
@@ -3940,18 +4669,18 @@
-
561    def get_flow_user_state(self, key: str) -> Any:
-562        """Get the user state of a flow at a given key"""
-563        flow_id = self.get_root_job_id()
-564        r = self.get(
-565            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
-566            raise_for_status=False,
-567        )
-568        if r.status_code == 404:
-569            print(f"Job {flow_id} does not exist or is not a flow")
-570            return None
-571        else:
-572            return r.json()
+            
629    def get_flow_user_state(self, key: str) -> Any:
+630        """Get the user state of a flow at a given key"""
+631        flow_id = self.get_root_job_id()
+632        r = self.get(
+633            f"/w/{self.workspace}/jobs/flow/user_states/{flow_id}/{key}",
+634            raise_for_status=False,
+635        )
+636        if r.status_code == 404:
+637            print(f"Job {flow_id} does not exist or is not a flow")
+638            return None
+639        else:
+640            return r.json()
 
@@ -3969,9 +4698,9 @@
-
574    @property
-575    def version(self):
-576        return self.get("version").text
+            
642    @property
+643    def version(self):
+644        return self.get("version").text
 
@@ -3989,27 +4718,27 @@
-
578    def get_duckdb_connection_settings(
-579        self,
-580        s3_resource_path: str = "",
-581    ) -> DuckDbConnectionSettings | None:
-582        """
-583        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-584        initiate an S3 connection from DuckDB
-585        """
-586        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
-587        try:
-588            raw_obj = self.post(
-589                f"/w/{self.workspace}/job_helpers/v2/duckdb_connection_settings",
-590                json={}
-591                if s3_resource_path == ""
-592                else {"s3_resource_path": s3_resource_path},
-593            ).json()
-594            return DuckDbConnectionSettings(raw_obj)
-595        except JSONDecodeError as e:
-596            raise Exception(
-597                "Could not generate DuckDB S3 connection settings from the provided resource"
-598            ) from e
+            
646    def get_duckdb_connection_settings(
+647        self,
+648        s3_resource_path: str = "",
+649    ) -> DuckDbConnectionSettings | None:
+650        """
+651        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+652        initiate an S3 connection from DuckDB
+653        """
+654        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
+655        try:
+656            raw_obj = self.post(
+657                f"/w/{self.workspace}/job_helpers/v2/duckdb_connection_settings",
+658                json={}
+659                if s3_resource_path == ""
+660                else {"s3_resource_path": s3_resource_path},
+661            ).json()
+662            return DuckDbConnectionSettings(raw_obj)
+663        except JSONDecodeError as e:
+664            raise Exception(
+665                "Could not generate DuckDB S3 connection settings from the provided resource"
+666            ) from e
 
@@ -4030,27 +4759,27 @@ initiate an S3 connection from DuckDB

-
600    def get_polars_connection_settings(
-601        self,
-602        s3_resource_path: str = "",
-603    ) -> PolarsConnectionSettings:
-604        """
-605        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-606        initiate an S3 connection from Polars
-607        """
-608        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
-609        try:
-610            raw_obj = self.post(
-611                f"/w/{self.workspace}/job_helpers/v2/polars_connection_settings",
-612                json={}
-613                if s3_resource_path == ""
-614                else {"s3_resource_path": s3_resource_path},
-615            ).json()
-616            return PolarsConnectionSettings(raw_obj)
-617        except JSONDecodeError as e:
-618            raise Exception(
-619                "Could not generate Polars S3 connection settings from the provided resource"
-620            ) from e
+            
668    def get_polars_connection_settings(
+669        self,
+670        s3_resource_path: str = "",
+671    ) -> PolarsConnectionSettings:
+672        """
+673        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+674        initiate an S3 connection from Polars
+675        """
+676        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
+677        try:
+678            raw_obj = self.post(
+679                f"/w/{self.workspace}/job_helpers/v2/polars_connection_settings",
+680                json={}
+681                if s3_resource_path == ""
+682                else {"s3_resource_path": s3_resource_path},
+683            ).json()
+684            return PolarsConnectionSettings(raw_obj)
+685        except JSONDecodeError as e:
+686            raise Exception(
+687                "Could not generate Polars S3 connection settings from the provided resource"
+688            ) from e
 
@@ -4071,27 +4800,27 @@ initiate an S3 connection from Polars

-
622    def get_boto3_connection_settings(
-623        self,
-624        s3_resource_path: str = "",
-625    ) -> Boto3ConnectionSettings:
-626        """
-627        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-628        initiate an S3 connection using boto3
-629        """
-630        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
-631        try:
-632            s3_resource = self.post(
-633                f"/w/{self.workspace}/job_helpers/v2/s3_resource_info",
-634                json={}
-635                if s3_resource_path == ""
-636                else {"s3_resource_path": s3_resource_path},
-637            ).json()
-638            return self.__boto3_connection_settings(s3_resource)
-639        except JSONDecodeError as e:
-640            raise Exception(
-641                "Could not generate Boto3 S3 connection settings from the provided resource"
-642            ) from e
+            
690    def get_boto3_connection_settings(
+691        self,
+692        s3_resource_path: str = "",
+693    ) -> Boto3ConnectionSettings:
+694        """
+695        Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+696        initiate an S3 connection using boto3
+697        """
+698        s3_resource_path = parse_resource_syntax(s3_resource_path) or s3_resource_path
+699        try:
+700            s3_resource = self.post(
+701                f"/w/{self.workspace}/job_helpers/v2/s3_resource_info",
+702                json={}
+703                if s3_resource_path == ""
+704                else {"s3_resource_path": s3_resource_path},
+705            ).json()
+706            return self.__boto3_connection_settings(s3_resource)
+707        except JSONDecodeError as e:
+708            raise Exception(
+709                "Could not generate Boto3 S3 connection settings from the provided resource"
+710            ) from e
 
@@ -4112,21 +4841,21 @@ initiate an S3 connection using boto3

-
644    def load_s3_file(self, s3object: S3Object | str, s3_resource_path: str | None) -> bytes:
-645        """
-646        Load a file from the workspace s3 bucket and returns its content as bytes.
-647
-648        '''python
-649        from wmill import S3Object
-650
-651        s3_obj = S3Object(s3="/path/to/my_file.txt")
-652        my_obj_content = client.load_s3_file(s3_obj)
-653        file_content = my_obj_content.decode("utf-8")
-654        '''
-655        """
-656        s3object = parse_s3_object(s3object)
-657        with self.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
-658            return file_reader.read()
+            
712    def load_s3_file(self, s3object: S3Object | str, s3_resource_path: str | None) -> bytes:
+713        """
+714        Load a file from the workspace s3 bucket and returns its content as bytes.
+715
+716        '''python
+717        from wmill import S3Object
+718
+719        s3_obj = S3Object(s3="/path/to/my_file.txt")
+720        my_obj_content = client.load_s3_file(s3_obj)
+721        file_content = my_obj_content.decode("utf-8")
+722        '''
+723        """
+724        s3object = parse_s3_object(s3object)
+725        with self.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
+726            return file_reader.read()
 
@@ -4154,29 +4883,29 @@ file_content = my_obj_content.decode("utf-8")
-
660    def load_s3_file_reader(
-661        self, s3object: S3Object | str, s3_resource_path: str | None
-662    ) -> BufferedReader:
-663        """
-664        Load a file from the workspace s3 bucket and returns the bytes stream.
-665
-666        '''python
-667        from wmill import S3Object
-668
-669        s3_obj = S3Object(s3="/path/to/my_file.txt")
-670        with wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
-671            print(file_reader.read())
-672        '''
-673        """
-674        s3object = parse_s3_object(s3object)
-675        reader = S3BufferedReader(
-676            f"{self.workspace}",
-677            self.client,
-678            s3object["s3"],
-679            s3_resource_path,
-680            s3object["storage"] if "storage" in s3object else None,
-681        )
-682        return reader
+            
728    def load_s3_file_reader(
+729        self, s3object: S3Object | str, s3_resource_path: str | None
+730    ) -> BufferedReader:
+731        """
+732        Load a file from the workspace s3 bucket and returns the bytes stream.
+733
+734        '''python
+735        from wmill import S3Object
+736
+737        s3_obj = S3Object(s3="/path/to/my_file.txt")
+738        with wmill.load_s3_file_reader(s3object, s3_resource_path) as file_reader:
+739            print(file_reader.read())
+740        '''
+741        """
+742        s3object = parse_s3_object(s3object)
+743        reader = S3BufferedReader(
+744            f"{self.workspace}",
+745            self.client,
+746            s3object["s3"],
+747            s3_resource_path,
+748            s3object["storage"] if "storage" in s3object else None,
+749        )
+750        return reader
 
@@ -4204,72 +4933,72 @@ with wmill.load_s3_file_reader(s3object, s3_r
-
684    def write_s3_file(
-685        self,
-686        s3object: S3Object | str | None,
-687        file_content: BufferedReader | bytes,
-688        s3_resource_path: str | None,
-689        content_type: str | None = None,
-690        content_disposition: str | None = None,
-691    ) -> S3Object:
-692        """
-693        Write a file to the workspace S3 bucket
-694
-695        '''python
-696        from wmill import S3Object
-697
-698        s3_obj = S3Object(s3="/path/to/my_file.txt")
-699
-700        # for an in memory bytes array:
-701        file_content = b'Hello Windmill!'
-702        client.write_s3_file(s3_obj, file_content)
-703
-704        # for a file:
-705        with open("my_file.txt", "rb") as my_file:
-706            client.write_s3_file(s3_obj, my_file)
-707        '''
-708        """
-709        s3object = parse_s3_object(s3object)
-710        # httpx accepts either bytes or "a bytes generator" as content. If it's a BufferedReader, we need to convert it to a generator
-711        if isinstance(file_content, BufferedReader):
-712            content_payload = bytes_generator(file_content)
-713        elif isinstance(file_content, bytes):
-714            content_payload = file_content
-715        else:
-716            raise Exception("Type of file_content not supported")
-717
-718        query_params = {}
-719        if s3object is not None and s3object["s3"] != "":
-720            query_params["file_key"] = s3object["s3"]
-721        if s3_resource_path is not None and s3_resource_path != "":
-722            query_params["s3_resource_path"] = s3_resource_path
-723        if (
-724            s3object is not None
-725            and "storage" in s3object
-726            and s3object["storage"] is not None
-727        ):
-728            query_params["storage"] = s3object["storage"]
-729        if content_type is not None:
-730            query_params["content_type"] = content_type
-731        if content_disposition is not None:
-732            query_params["content_disposition"] = content_disposition
-733
-734        try:
-735            # need a vanilla client b/c content-type is not application/json here
-736            response = httpx.post(
-737                f"{self.base_url}/w/{self.workspace}/job_helpers/upload_s3_file",
-738                headers={
-739                    "Authorization": f"Bearer {self.token}",
-740                    "Content-Type": "application/octet-stream",
-741                },
-742                params=query_params,
-743                content=content_payload,
-744                verify=self.verify,
-745                timeout=None,
-746            ).json()
-747        except Exception as e:
-748            raise Exception("Could not write file to S3") from e
-749        return S3Object(s3=response["file_key"])
+            
752    def write_s3_file(
+753        self,
+754        s3object: S3Object | str | None,
+755        file_content: BufferedReader | bytes,
+756        s3_resource_path: str | None,
+757        content_type: str | None = None,
+758        content_disposition: str | None = None,
+759    ) -> S3Object:
+760        """
+761        Write a file to the workspace S3 bucket
+762
+763        '''python
+764        from wmill import S3Object
+765
+766        s3_obj = S3Object(s3="/path/to/my_file.txt")
+767
+768        # for an in memory bytes array:
+769        file_content = b'Hello Windmill!'
+770        client.write_s3_file(s3_obj, file_content)
+771
+772        # for a file:
+773        with open("my_file.txt", "rb") as my_file:
+774            client.write_s3_file(s3_obj, my_file)
+775        '''
+776        """
+777        s3object = parse_s3_object(s3object)
+778        # httpx accepts either bytes or "a bytes generator" as content. If it's a BufferedReader, we need to convert it to a generator
+779        if isinstance(file_content, BufferedReader):
+780            content_payload = bytes_generator(file_content)
+781        elif isinstance(file_content, bytes):
+782            content_payload = file_content
+783        else:
+784            raise Exception("Type of file_content not supported")
+785
+786        query_params = {}
+787        if s3object is not None and s3object["s3"] != "":
+788            query_params["file_key"] = s3object["s3"]
+789        if s3_resource_path is not None and s3_resource_path != "":
+790            query_params["s3_resource_path"] = s3_resource_path
+791        if (
+792            s3object is not None
+793            and "storage" in s3object
+794            and s3object["storage"] is not None
+795        ):
+796            query_params["storage"] = s3object["storage"]
+797        if content_type is not None:
+798            query_params["content_type"] = content_type
+799        if content_disposition is not None:
+800            query_params["content_disposition"] = content_disposition
+801
+802        try:
+803            # need a vanilla client b/c content-type is not application/json here
+804            response = httpx.post(
+805                f"{self.base_url}/w/{self.workspace}/job_helpers/upload_s3_file",
+806                headers={
+807                    "Authorization": f"Bearer {self.token}",
+808                    "Content-Type": "application/octet-stream",
+809                },
+810                params=query_params,
+811                content=content_payload,
+812                verify=self.verify,
+813                timeout=None,
+814            ).json()
+815        except Exception as e:
+816            raise Exception("Could not write file to S3") from e
+817        return S3Object(s3=response["file_key"])
 
@@ -4305,10 +5034,10 @@ client.write_s3_file(s3_obj, file_content)

-
751    def sign_s3_objects(self, s3_objects: list[S3Object | str]) -> list[S3Object]:
-752        return self.post(
-753            f"/w/{self.workspace}/apps/sign_s3_objects", json={"s3_objects": list(map(parse_s3_object, s3_objects))}
-754        ).json()
+            
819    def sign_s3_objects(self, s3_objects: list[S3Object | str]) -> list[S3Object]:
+820        return self.post(
+821            f"/w/{self.workspace}/apps/sign_s3_objects", json={"s3_objects": list(map(parse_s3_object, s3_objects))}
+822        ).json()
 
@@ -4326,16 +5055,162 @@ client.write_s3_file(s3_obj, file_content)

-
756    def sign_s3_object(self, s3_object: S3Object | str) -> S3Object:
-757        return self.post(
-758            f"/w/{self.workspace}/apps/sign_s3_objects",
-759            json={"s3_objects": [s3_object]},
-760        ).json()[0]
+            
824    def sign_s3_object(self, s3_object: S3Object | str) -> S3Object:
+825        return self.post(
+826            f"/w/{self.workspace}/apps/sign_s3_objects",
+827            json={"s3_objects": [s3_object]},
+828        ).json()[0]
 
+
+
+ +
+ + def + get_presigned_s3_public_urls( self, s3_objects: list[wmill.s3_types.S3Object | str], base_url: str | None = None) -> list[str]: + + + +
+ +
830    def get_presigned_s3_public_urls(
+831        self,
+832        s3_objects: list[S3Object | str],
+833        base_url: str | None = None,
+834    ) -> list[str]:
+835        """
+836        Generate presigned public URLs for an array of S3 objects.
+837        If an S3 object is not signed yet, it will be signed first.
+838
+839        Args:
+840            s3_objects: List of S3 objects to sign
+841            base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL)
+842
+843        Returns:
+844            List of signed public URLs
+845
+846        Example:
+847            >>> s3_objs = [S3Object(s3="/path/to/file1.txt"), S3Object(s3="/path/to/file2.txt")]
+848            >>> urls = client.get_presigned_s3_public_urls(s3_objs)
+849        """
+850        base_url = base_url or self._get_public_base_url()
+851
+852        s3_objs = [parse_s3_object(s3_obj) for s3_obj in s3_objects]
+853
+854        # Sign all S3 objects that need to be signed in one go
+855        s3_objs_to_sign: list[tuple[S3Object, int]] = [
+856            (s3_obj, index)
+857            for index, s3_obj in enumerate(s3_objs)
+858            if s3_obj.get("presigned") is None
+859        ]
+860
+861        if s3_objs_to_sign:
+862            print(f"Signing {len(s3_objs_to_sign)} S3 objects...")
+863            signed_s3_objs = self.sign_s3_objects(
+864                [s3_obj for s3_obj, _ in s3_objs_to_sign]
+865            )
+866            for i, (_, original_index) in enumerate(s3_objs_to_sign):
+867                s3_objs[original_index] = parse_s3_object(signed_s3_objs[i])
+868
+869        signed_urls: list[str] = []
+870        for s3_obj in s3_objs:
+871            s3 = s3_obj.get("s3", "")
+872            presigned = s3_obj.get("presigned", "")
+873            storage = s3_obj.get("storage", "_default_")
+874            signed_url = f"{base_url}/api/w/{self.workspace}/s3_proxy/{storage}/{s3}?{presigned}"
+875            signed_urls.append(signed_url)
+876
+877        return signed_urls
+
+ + +

Generate presigned public URLs for an array of S3 objects. +If an S3 object is not signed yet, it will be signed first.

+ +

Args: + s3_objects: List of S3 objects to sign + base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL)

+ +

Returns: + List of signed public URLs

+ +

Example:

+ +
+
+
+

s3_objs = [S3Object(s3="/path/to/file1.txt"), S3Object(s3="/path/to/file2.txt")] + urls = client.get_presigned_s3_public_urls(s3_objs)

+
+
+
+
+ + +
+
+ +
+ + def + get_presigned_s3_public_url( self, s3_object: wmill.s3_types.S3Object | str, base_url: str | None = None) -> str: + + + +
+ +
879    def get_presigned_s3_public_url(
+880        self,
+881        s3_object: S3Object | str,
+882        base_url: str | None = None,
+883    ) -> str:
+884        """
+885        Generate a presigned public URL for an S3 object.
+886        If the S3 object is not signed yet, it will be signed first.
+887
+888        Args:
+889            s3_object: S3 object to sign
+890            base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL)
+891
+892        Returns:
+893            Signed public URL
+894
+895        Example:
+896            >>> s3_obj = S3Object(s3="/path/to/file.txt")
+897            >>> url = client.get_presigned_s3_public_url(s3_obj)
+898        """
+899        urls = self.get_presigned_s3_public_urls([s3_object], base_url)
+900        return urls[0]
+
+ + +

Generate a presigned public URL for an S3 object. +If the S3 object is not signed yet, it will be signed first.

+ +

Args: + s3_object: S3 object to sign + base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL)

+ +

Returns: + Signed public URL

+ +

Example:

+ +
+
+
+

s3_obj = S3Object(s3="/path/to/file.txt") + url = client.get_presigned_s3_public_url(s3_obj)

+
+
+
+
+ +
@@ -4348,8 +5223,8 @@ client.write_s3_file(s3_obj, file_content)

-
777    def whoami(self) -> dict:
-778        return self.get("/users/whoami").json()
+            
921    def whoami(self) -> dict:
+922        return self.get("/users/whoami").json()
 
@@ -4365,9 +5240,9 @@ client.write_s3_file(s3_obj, file_content)

-
780    @property
-781    def user(self) -> dict:
-782        return self.whoami()
+            
924    @property
+925    def user(self) -> dict:
+926        return self.whoami()
 
@@ -4383,14 +5258,14 @@ client.write_s3_file(s3_obj, file_content)

-
784    @property
-785    def state_path(self) -> str:
-786        state_path = os.environ.get(
-787            "WM_STATE_PATH_NEW", os.environ.get("WM_STATE_PATH")
-788        )
-789        if state_path is None:
-790            raise Exception("State path not found")
-791        return state_path
+            
928    @property
+929    def state_path(self) -> str:
+930        state_path = os.environ.get(
+931            "WM_STATE_PATH_NEW", os.environ.get("WM_STATE_PATH")
+932        )
+933        if state_path is None:
+934            raise Exception("State path not found")
+935        return state_path
 
@@ -4406,9 +5281,9 @@ client.write_s3_file(s3_obj, file_content)

-
793    @property
-794    def state(self) -> Any:
-795        return self.get_resource(path=self.state_path, none_if_undefined=True)
+            
937    @property
+938    def state(self) -> Any:
+939        return self.get_resource(path=self.state_path, none_if_undefined=True)
 
@@ -4427,15 +5302,15 @@ client.write_s3_file(s3_obj, file_content)

-
801    @staticmethod
-802    def set_shared_state_pickle(value: Any, path: str = "state.pickle") -> None:
-803        """
-804        Set the state in the shared folder using pickle
-805        """
-806        import pickle
-807
-808        with open(f"/shared/{path}", "wb") as handle:
-809            pickle.dump(value, handle, protocol=pickle.HIGHEST_PROTOCOL)
+            
945    @staticmethod
+946    def set_shared_state_pickle(value: Any, path: str = "state.pickle") -> None:
+947        """
+948        Set the state in the shared folder using pickle
+949        """
+950        import pickle
+951
+952        with open(f"/shared/{path}", "wb") as handle:
+953            pickle.dump(value, handle, protocol=pickle.HIGHEST_PROTOCOL)
 
@@ -4456,15 +5331,15 @@ client.write_s3_file(s3_obj, file_content)

-
811    @staticmethod
-812    def get_shared_state_pickle(path: str = "state.pickle") -> Any:
-813        """
-814        Get the state in the shared folder using pickle
-815        """
-816        import pickle
-817
-818        with open(f"/shared/{path}", "rb") as handle:
-819            return pickle.load(handle)
+            
955    @staticmethod
+956    def get_shared_state_pickle(path: str = "state.pickle") -> Any:
+957        """
+958        Get the state in the shared folder using pickle
+959        """
+960        import pickle
+961
+962        with open(f"/shared/{path}", "rb") as handle:
+963            return pickle.load(handle)
 
@@ -4485,15 +5360,15 @@ client.write_s3_file(s3_obj, file_content)

-
821    @staticmethod
-822    def set_shared_state(value: Any, path: str = "state.json") -> None:
-823        """
-824        Set the state in the shared folder using pickle
-825        """
-826        import json
-827
-828        with open(f"/shared/{path}", "w", encoding="utf-8") as f:
-829            json.dump(value, f, ensure_ascii=False, indent=4)
+            
965    @staticmethod
+966    def set_shared_state(value: Any, path: str = "state.json") -> None:
+967        """
+968        Set the state in the shared folder using pickle
+969        """
+970        import json
+971
+972        with open(f"/shared/{path}", "w", encoding="utf-8") as f:
+973            json.dump(value, f, ensure_ascii=False, indent=4)
 
@@ -4514,15 +5389,15 @@ client.write_s3_file(s3_obj, file_content)

-
831    @staticmethod
-832    def get_shared_state(path: str = "state.json") -> None:
-833        """
-834        Get the state in the shared folder using pickle
-835        """
-836        import json
-837
-838        with open(f"/shared/{path}", "r", encoding="utf-8") as f:
-839            return json.load(f)
+            
975    @staticmethod
+976    def get_shared_state(path: str = "state.json") -> None:
+977        """
+978        Get the state in the shared folder using pickle
+979        """
+980        import json
+981
+982        with open(f"/shared/{path}", "r", encoding="utf-8") as f:
+983            return json.load(f)
 
@@ -4542,13 +5417,13 @@ client.write_s3_file(s3_obj, file_content)

-
841    def get_resume_urls(self, approver: str = None) -> dict:
-842        nonce = random.randint(0, 1000000000)
-843        job_id = os.environ.get("WM_JOB_ID") or "NO_ID"
-844        return self.get(
-845            f"/w/{self.workspace}/jobs/resume_urls/{job_id}/{nonce}",
-846            params={"approver": approver},
-847        ).json()
+            
985    def get_resume_urls(self, approver: str = None) -> dict:
+986        nonce = random.randint(0, 1000000000)
+987        job_id = os.environ.get("WM_JOB_ID") or "NO_ID"
+988        return self.get(
+989            f"/w/{self.workspace}/jobs/resume_urls/{job_id}/{nonce}",
+990            params={"approver": approver},
+991        ).json()
 
@@ -4566,82 +5441,82 @@ client.write_s3_file(s3_obj, file_content)

-
849    def request_interactive_slack_approval(
-850        self,
-851        slack_resource_path: str,
-852        channel_id: str,
-853        message: str = None,
-854        approver: str = None,
-855        default_args_json: dict = None,
-856        dynamic_enums_json: dict = None,
-857    ) -> None:
-858        """
-859        Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields.
-860
-861        **[Enterprise Edition Only]** To include form fields in the Slack approval request, use the "Advanced -> Suspend -> Form" functionality.
-862        Learn more at: https://www.windmill.dev/docs/flows/flow_approval#form
-863
-864        :param slack_resource_path: The path to the Slack resource in Windmill.
-865        :type slack_resource_path: str
-866        :param channel_id: The Slack channel ID where the approval request will be sent.
-867        :type channel_id: str
-868        :param message: Optional custom message to include in the Slack approval request.
-869        :type message: str, optional
-870        :param approver: Optional user ID or name of the approver for the request.
-871        :type approver: str, optional
-872        :param default_args_json: Optional dictionary defining or overriding the default arguments for form fields.
-873        :type default_args_json: dict, optional
-874        :param dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields.
-875        :type dynamic_enums_json: dict, optional
-876
-877        :raises Exception: If the function is not called within a flow or flow preview.
-878        :raises Exception: If the required flow job or flow step environment variables are not set.
-879
-880        :return: None
-881
-882        **Usage Example:**
-883            >>> client.request_interactive_slack_approval(
-884            ...     slack_resource_path="/u/alex/my_slack_resource",
-885            ...     channel_id="admins-slack-channel",
-886            ...     message="Please approve this request",
-887            ...     approver="approver123",
-888            ...     default_args_json={"key1": "value1", "key2": 42},
-889            ...     dynamic_enums_json={"foo": ["choice1", "choice2"], "bar": ["optionA", "optionB"]},
-890            ... )
-891
-892        **Notes:**
-893        - This function must be executed within a Windmill flow or flow preview.
-894        - The function checks for required environment variables (`WM_FLOW_JOB_ID`, `WM_FLOW_STEP_ID`) to ensure it is run in the appropriate context.
-895        """
-896        workspace = self.workspace
-897        flow_job_id = os.environ.get("WM_FLOW_JOB_ID")
-898
-899        if not flow_job_id:
-900            raise Exception(
-901                "You can't use 'request_interactive_slack_approval' function in a standalone script or flow step preview. Please use it in a flow or a flow preview."
-902            )
-903
-904        # Only include non-empty parameters
-905        params = {}
-906        if message:
-907            params["message"] = message
-908        if approver:
-909            params["approver"] = approver
-910        if slack_resource_path:
-911            params["slack_resource_path"] = slack_resource_path
-912        if channel_id:
-913            params["channel_id"] = channel_id
-914        if os.environ.get("WM_FLOW_STEP_ID"):
-915            params["flow_step_id"] = os.environ.get("WM_FLOW_STEP_ID")
-916        if default_args_json:
-917            params["default_args_json"] = json.dumps(default_args_json)
-918        if dynamic_enums_json:
-919            params["dynamic_enums_json"] = json.dumps(dynamic_enums_json)
-920
-921        self.get(
-922            f"/w/{workspace}/jobs/slack_approval/{os.environ.get('WM_JOB_ID', 'NO_JOB_ID')}",
-923            params=params,
-924        )
+            
 993    def request_interactive_slack_approval(
+ 994        self,
+ 995        slack_resource_path: str,
+ 996        channel_id: str,
+ 997        message: str = None,
+ 998        approver: str = None,
+ 999        default_args_json: dict = None,
+1000        dynamic_enums_json: dict = None,
+1001    ) -> None:
+1002        """
+1003        Sends an interactive approval request via Slack, allowing optional customization of the message, approver, and form fields.
+1004
+1005        **[Enterprise Edition Only]** To include form fields in the Slack approval request, use the "Advanced -> Suspend -> Form" functionality.
+1006        Learn more at: https://www.windmill.dev/docs/flows/flow_approval#form
+1007
+1008        :param slack_resource_path: The path to the Slack resource in Windmill.
+1009        :type slack_resource_path: str
+1010        :param channel_id: The Slack channel ID where the approval request will be sent.
+1011        :type channel_id: str
+1012        :param message: Optional custom message to include in the Slack approval request.
+1013        :type message: str, optional
+1014        :param approver: Optional user ID or name of the approver for the request.
+1015        :type approver: str, optional
+1016        :param default_args_json: Optional dictionary defining or overriding the default arguments for form fields.
+1017        :type default_args_json: dict, optional
+1018        :param dynamic_enums_json: Optional dictionary overriding the enum default values of enum form fields.
+1019        :type dynamic_enums_json: dict, optional
+1020
+1021        :raises Exception: If the function is not called within a flow or flow preview.
+1022        :raises Exception: If the required flow job or flow step environment variables are not set.
+1023
+1024        :return: None
+1025
+1026        **Usage Example:**
+1027            >>> client.request_interactive_slack_approval(
+1028            ...     slack_resource_path="/u/alex/my_slack_resource",
+1029            ...     channel_id="admins-slack-channel",
+1030            ...     message="Please approve this request",
+1031            ...     approver="approver123",
+1032            ...     default_args_json={"key1": "value1", "key2": 42},
+1033            ...     dynamic_enums_json={"foo": ["choice1", "choice2"], "bar": ["optionA", "optionB"]},
+1034            ... )
+1035
+1036        **Notes:**
+1037        - This function must be executed within a Windmill flow or flow preview.
+1038        - The function checks for required environment variables (`WM_FLOW_JOB_ID`, `WM_FLOW_STEP_ID`) to ensure it is run in the appropriate context.
+1039        """
+1040        workspace = self.workspace
+1041        flow_job_id = os.environ.get("WM_FLOW_JOB_ID")
+1042
+1043        if not flow_job_id:
+1044            raise Exception(
+1045                "You can't use 'request_interactive_slack_approval' function in a standalone script or flow step preview. Please use it in a flow or a flow preview."
+1046            )
+1047
+1048        # Only include non-empty parameters
+1049        params = {}
+1050        if message:
+1051            params["message"] = message
+1052        if approver:
+1053            params["approver"] = approver
+1054        if slack_resource_path:
+1055            params["slack_resource_path"] = slack_resource_path
+1056        if channel_id:
+1057            params["channel_id"] = channel_id
+1058        if os.environ.get("WM_FLOW_STEP_ID"):
+1059            params["flow_step_id"] = os.environ.get("WM_FLOW_STEP_ID")
+1060        if default_args_json:
+1061            params["default_args_json"] = json.dumps(default_args_json)
+1062        if dynamic_enums_json:
+1063            params["dynamic_enums_json"] = json.dumps(dynamic_enums_json)
+1064
+1065        self.get(
+1066            f"/w/{workspace}/jobs/slack_approval/{os.environ.get('WM_JOB_ID', 'NO_JOB_ID')}",
+1067            params=params,
+1068        )
 
@@ -4712,13 +5587,13 @@ Learn more at:
-
926    def username_to_email(self, username: str) -> str:
-927        """
-928        Get email from workspace username
-929        This method is particularly useful for apps that require the email address of the viewer.
-930        Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.
-931        """
-932        return self.get(f"/w/{self.workspace}/users/username_to_email/{username}").text
+            
1070    def username_to_email(self, username: str) -> str:
+1071        """
+1072        Get email from workspace username
+1073        This method is particularly useful for apps that require the email address of the viewer.
+1074        Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.
+1075        """
+1076        return self.get(f"/w/{self.workspace}/users/username_to_email/{username}").text
 
@@ -4740,25 +5615,25 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
934    def send_teams_message(
-935        self,
-936        conversation_id: str,
-937        text: str,
-938        success: bool = True,
-939        card_block: dict = None,
-940    ):
-941        """
-942        Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message
-943        """
-944        return self.post(
-945            f"/teams/activities",
-946            json={
-947                "conversation_id": conversation_id,
-948                "text": text,
-949                "success": success,
-950                "card_block": card_block,
-951            },
-952        )
+            
1078    def send_teams_message(
+1079        self,
+1080        conversation_id: str,
+1081        text: str,
+1082        success: bool = True,
+1083        card_block: dict = None,
+1084    ):
+1085        """
+1086        Send a message to a Microsoft Teams conversation with conversation_id, where success is used to style the message
+1087        """
+1088        return self.post(
+1089            f"/teams/activities",
+1090            json={
+1091                "conversation_id": conversation_id,
+1092                "text": text,
+1093                "success": success,
+1094                "card_block": card_block,
+1095            },
+1096        )
 
@@ -4766,6 +5641,44 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
+
+
+ +
+ + def + datatable(self, name: str = 'main'): + + + +
+ +
1098    def datatable(self, name: str = "main"):
+1099        return DataTableClient(self, name)
+
+ + + + +
+
+ +
+ + def + ducklake(self, name: str = 'main'): + + + +
+ +
1101    def ducklake(self, name: str = "main"):
+1102        return DucklakeClient(self, name)
+
+ + + +
@@ -4779,15 +5692,15 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b -
955def init_global_client(f):
-956    @functools.wraps(f)
-957    def wrapper(*args, **kwargs):
-958        global _client
-959        if _client is None:
-960            _client = Windmill()
-961        return f(*args, **kwargs)
-962
-963    return wrapper
+            
1106def init_global_client(f):
+1107    @functools.wraps(f)
+1108    def wrapper(*args, **kwargs):
+1109        global _client
+1110        if _client is None:
+1111            _client = Windmill()
+1112        return f(*args, **kwargs)
+1113
+1114    return wrapper
 
@@ -4805,22 +5718,22 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
966def deprecate(in_favor_of: str):
-967    def decorator(f):
-968        @functools.wraps(f)
-969        def wrapper(*args, **kwargs):
-970            warnings.warn(
-971                (
-972                    f"The '{f.__name__}' method is deprecated and may be removed in the future. "
-973                    f"Consider {in_favor_of}"
-974                ),
-975                DeprecationWarning,
-976            )
-977            return f(*args, **kwargs)
-978
-979        return wrapper
-980
-981    return decorator
+            
1117def deprecate(in_favor_of: str):
+1118    def decorator(f):
+1119        @functools.wraps(f)
+1120        def wrapper(*args, **kwargs):
+1121            warnings.warn(
+1122                (
+1123                    f"The '{f.__name__}' method is deprecated and may be removed in the future. "
+1124                    f"Consider {in_favor_of}"
+1125                ),
+1126                DeprecationWarning,
+1127            )
+1128            return f(*args, **kwargs)
+1129
+1130        return wrapper
+1131
+1132    return decorator
 
@@ -4839,9 +5752,9 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
984@init_global_client
-985def get_workspace() -> str:
-986    return _client.workspace
+            
1135@init_global_client
+1136def get_workspace() -> str:
+1137    return _client.workspace
 
@@ -4860,9 +5773,9 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
989@init_global_client
-990def get_root_job_id(job_id: str | None = None) -> str:
-991    return _client.get_root_job_id(job_id)
+            
1140@init_global_client
+1141def get_root_job_id(job_id: str | None = None) -> str:
+1142    return _client.get_root_job_id(job_id)
 
@@ -4882,10 +5795,10 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
994@init_global_client
-995@deprecate("Windmill().version")
-996def get_version() -> str:
-997    return _client.version
+            
1145@init_global_client
+1146@deprecate("Windmill().version")
+1147def get_version() -> str:
+1148    return _client.version
 
@@ -4904,21 +5817,21 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1000@init_global_client
-1001def run_script_async(
-1002    hash_or_path: str,
-1003    args: Dict[str, Any] = None,
-1004    scheduled_in_secs: int = None,
-1005) -> str:
-1006    is_path = "/" in hash_or_path
-1007    hash_ = None if is_path else hash_or_path
-1008    path = hash_or_path if is_path else None
-1009    return _client.run_script_async(
-1010        hash_=hash_,
-1011        path=path,
-1012        args=args,
-1013        scheduled_in_secs=scheduled_in_secs,
-1014    )
+            
1151@init_global_client
+1152def run_script_async(
+1153    hash_or_path: str,
+1154    args: Dict[str, Any] = None,
+1155    scheduled_in_secs: int = None,
+1156) -> str:
+1157    is_path = "/" in hash_or_path
+1158    hash_ = None if is_path else hash_or_path
+1159    path = hash_or_path if is_path else None
+1160    return _client.run_script_async(
+1161        hash_=hash_,
+1162        path=path,
+1163        args=args,
+1164        scheduled_in_secs=scheduled_in_secs,
+1165    )
 
@@ -4937,22 +5850,22 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1017@init_global_client
-1018def run_flow_async(
-1019    path: str,
-1020    args: Dict[str, Any] = None,
-1021    scheduled_in_secs: int = None,
-1022    # can only be set to false if this the job will be fully await and not concurrent with any other job
-1023    # as otherwise the child flow and its own child will store their state in the parent job which will
-1024    # lead to incorrectness and failures
-1025    do_not_track_in_parent: bool = True,
-1026) -> str:
-1027    return _client.run_flow_async(
-1028        path=path,
-1029        args=args,
-1030        scheduled_in_secs=scheduled_in_secs,
-1031        do_not_track_in_parent=do_not_track_in_parent,
-1032    )
+            
1168@init_global_client
+1169def run_flow_async(
+1170    path: str,
+1171    args: Dict[str, Any] = None,
+1172    scheduled_in_secs: int = None,
+1173    # can only be set to false if this the job will be fully await and not concurrent with any other job
+1174    # as otherwise the child flow and its own child will store their state in the parent job which will
+1175    # lead to incorrectness and failures
+1176    do_not_track_in_parent: bool = True,
+1177) -> str:
+1178    return _client.run_flow_async(
+1179        path=path,
+1180        args=args,
+1181        scheduled_in_secs=scheduled_in_secs,
+1182        do_not_track_in_parent=do_not_track_in_parent,
+1183    )
 
@@ -4971,23 +5884,23 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1035@init_global_client
-1036def run_script_sync(
-1037    hash: str,
-1038    args: Dict[str, Any] = None,
-1039    verbose: bool = False,
-1040    assert_result_is_not_none: bool = True,
-1041    cleanup: bool = True,
-1042    timeout: dt.timedelta = None,
-1043) -> Any:
-1044    return _client.run_script(
-1045        hash_=hash,
-1046        args=args,
-1047        verbose=verbose,
-1048        assert_result_is_not_none=assert_result_is_not_none,
-1049        cleanup=cleanup,
-1050        timeout=timeout,
-1051    )
+            
1186@init_global_client
+1187def run_script_sync(
+1188    hash: str,
+1189    args: Dict[str, Any] = None,
+1190    verbose: bool = False,
+1191    assert_result_is_not_none: bool = True,
+1192    cleanup: bool = True,
+1193    timeout: dt.timedelta = None,
+1194) -> Any:
+1195    return _client.run_script(
+1196        hash_=hash,
+1197        args=args,
+1198        verbose=verbose,
+1199        assert_result_is_not_none=assert_result_is_not_none,
+1200        cleanup=cleanup,
+1201        timeout=timeout,
+1202    )
 
@@ -5006,17 +5919,17 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1054@init_global_client
-1055def run_script_by_path_async(
-1056    path: str,
-1057    args: Dict[str, Any] = None,
-1058    scheduled_in_secs: Union[None, int] = None,
-1059) -> str:
-1060    return _client.run_script_by_path_async(
-1061        path=path,
-1062        args=args,
-1063        scheduled_in_secs=scheduled_in_secs,
-1064    )
+            
1205@init_global_client
+1206def run_script_by_path_async(
+1207    path: str,
+1208    args: Dict[str, Any] = None,
+1209    scheduled_in_secs: Union[None, int] = None,
+1210) -> str:
+1211    return _client.run_script_by_path_async(
+1212        path=path,
+1213        args=args,
+1214        scheduled_in_secs=scheduled_in_secs,
+1215    )
 
@@ -5035,17 +5948,17 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1067@init_global_client
-1068def run_script_by_hash_async(
-1069    hash_: str,
-1070    args: Dict[str, Any] = None,
-1071    scheduled_in_secs: Union[None, int] = None,
-1072) -> str:
-1073    return _client.run_script_by_hash_async(
-1074        hash_=hash_,
-1075        args=args,
-1076        scheduled_in_secs=scheduled_in_secs,
-1077    )
+            
1218@init_global_client
+1219def run_script_by_hash_async(
+1220    hash_: str,
+1221    args: Dict[str, Any] = None,
+1222    scheduled_in_secs: Union[None, int] = None,
+1223) -> str:
+1224    return _client.run_script_by_hash_async(
+1225        hash_=hash_,
+1226        args=args,
+1227        scheduled_in_secs=scheduled_in_secs,
+1228    )
 
@@ -5064,23 +5977,23 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1080@init_global_client
-1081def run_script_by_path_sync(
-1082    path: str,
-1083    args: Dict[str, Any] = None,
-1084    verbose: bool = False,
-1085    assert_result_is_not_none: bool = True,
-1086    cleanup: bool = True,
-1087    timeout: dt.timedelta = None,
-1088) -> Any:
-1089    return _client.run_script(
-1090        path=path,
-1091        args=args,
-1092        verbose=verbose,
-1093        assert_result_is_not_none=assert_result_is_not_none,
-1094        cleanup=cleanup,
-1095        timeout=timeout,
-1096    )
+            
1231@init_global_client
+1232def run_script_by_path_sync(
+1233    path: str,
+1234    args: Dict[str, Any] = None,
+1235    verbose: bool = False,
+1236    assert_result_is_not_none: bool = True,
+1237    cleanup: bool = True,
+1238    timeout: dt.timedelta = None,
+1239) -> Any:
+1240    return _client.run_script(
+1241        path=path,
+1242        args=args,
+1243        verbose=verbose,
+1244        assert_result_is_not_none=assert_result_is_not_none,
+1245        cleanup=cleanup,
+1246        timeout=timeout,
+1247    )
 
@@ -5099,12 +6012,12 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1099@init_global_client
-1100def get_id_token(audience: str) -> str:
-1101    """
-1102    Get a JWT token for the given audience for OIDC purposes to login into third parties like AWS, Vault, GCP, etc.
-1103    """
-1104    return _client.get_id_token(audience)
+            
1250@init_global_client
+1251def get_id_token(audience: str) -> str:
+1252    """
+1253    Get a JWT token for the given audience for OIDC purposes to login into third parties like AWS, Vault, GCP, etc.
+1254    """
+1255    return _client.get_id_token(audience)
 
@@ -5125,9 +6038,9 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1107@init_global_client
-1108def get_job_status(job_id: str) -> JobStatus:
-1109    return _client.get_job_status(job_id)
+            
1258@init_global_client
+1259def get_job_status(job_id: str) -> JobStatus:
+1260    return _client.get_job_status(job_id)
 
@@ -5146,11 +6059,11 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1112@init_global_client
-1113def get_result(job_id: str, assert_result_is_not_none=True) -> Dict[str, Any]:
-1114    return _client.get_result(
-1115        job_id=job_id, assert_result_is_not_none=assert_result_is_not_none
-1116    )
+            
1263@init_global_client
+1264def get_result(job_id: str, assert_result_is_not_none=True) -> Dict[str, Any]:
+1265    return _client.get_result(
+1266        job_id=job_id, assert_result_is_not_none=assert_result_is_not_none
+1267    )
 
@@ -5169,13 +6082,13 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1119@init_global_client
-1120def duckdb_connection_settings(s3_resource_path: str = "") -> DuckDbConnectionSettings:
-1121    """
-1122    Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-1123    initiate an S3 connection from DuckDB
-1124    """
-1125    return _client.get_duckdb_connection_settings(s3_resource_path)
+            
1270@init_global_client
+1271def duckdb_connection_settings(s3_resource_path: str = "") -> DuckDbConnectionSettings:
+1272    """
+1273    Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+1274    initiate an S3 connection from DuckDB
+1275    """
+1276    return _client.get_duckdb_connection_settings(s3_resource_path)
 
@@ -5197,13 +6110,13 @@ initiate an S3 connection from DuckDB

-
1128@init_global_client
-1129def polars_connection_settings(s3_resource_path: str = "") -> PolarsConnectionSettings:
-1130    """
-1131    Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-1132    initiate an S3 connection from Polars
-1133    """
-1134    return _client.get_polars_connection_settings(s3_resource_path)
+            
1279@init_global_client
+1280def polars_connection_settings(s3_resource_path: str = "") -> PolarsConnectionSettings:
+1281    """
+1282    Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+1283    initiate an S3 connection from Polars
+1284    """
+1285    return _client.get_polars_connection_settings(s3_resource_path)
 
@@ -5225,13 +6138,13 @@ initiate an S3 connection from Polars

-
1137@init_global_client
-1138def boto3_connection_settings(s3_resource_path: str = "") -> Boto3ConnectionSettings:
-1139    """
-1140    Convenient helpers that takes an S3 resource as input and returns the settings necessary to
-1141    initiate an S3 connection using boto3
-1142    """
-1143    return _client.get_boto3_connection_settings(s3_resource_path)
+            
1288@init_global_client
+1289def boto3_connection_settings(s3_resource_path: str = "") -> Boto3ConnectionSettings:
+1290    """
+1291    Convenient helpers that takes an S3 resource as input and returns the settings necessary to
+1292    initiate an S3 connection using boto3
+1293    """
+1294    return _client.get_boto3_connection_settings(s3_resource_path)
 
@@ -5253,14 +6166,14 @@ initiate an S3 connection using boto3

-
1146@init_global_client
-1147def load_s3_file(s3object: S3Object | str, s3_resource_path: str | None = None) -> bytes:
-1148    """
-1149    Load the entire content of a file stored in S3 as bytes
-1150    """
-1151    return _client.load_s3_file(
-1152        s3object, s3_resource_path if s3_resource_path != "" else None
-1153    )
+            
1297@init_global_client
+1298def load_s3_file(s3object: S3Object | str, s3_resource_path: str | None = None) -> bytes:
+1299    """
+1300    Load the entire content of a file stored in S3 as bytes
+1301    """
+1302    return _client.load_s3_file(
+1303        s3object, s3_resource_path if s3_resource_path != "" else None
+1304    )
 
@@ -5281,16 +6194,16 @@ initiate an S3 connection using boto3

-
1156@init_global_client
-1157def load_s3_file_reader(
-1158    s3object: S3Object | str, s3_resource_path: str | None = None
-1159) -> BufferedReader:
-1160    """
-1161    Load the content of a file stored in S3
-1162    """
-1163    return _client.load_s3_file_reader(
-1164        s3object, s3_resource_path if s3_resource_path != "" else None
-1165    )
+            
1307@init_global_client
+1308def load_s3_file_reader(
+1309    s3object: S3Object | str, s3_resource_path: str | None = None
+1310) -> BufferedReader:
+1311    """
+1312    Load the content of a file stored in S3
+1313    """
+1314    return _client.load_s3_file_reader(
+1315        s3object, s3_resource_path if s3_resource_path != "" else None
+1316    )
 
@@ -5311,30 +6224,30 @@ initiate an S3 connection using boto3

-
1168@init_global_client
-1169def write_s3_file(
-1170    s3object: S3Object | str | None,
-1171    file_content: BufferedReader | bytes,
-1172    s3_resource_path: str | None = None,
-1173    content_type: str | None = None,
-1174    content_disposition: str | None = None,
-1175) -> S3Object:
-1176    """
-1177    Upload a file to S3
-1178
-1179    Content type will be automatically guessed from path extension if left empty
-1180
-1181    See MDN for content_disposition: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
-1182    and content_type: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
-1183
-1184    """
-1185    return _client.write_s3_file(
-1186        s3object,
-1187        file_content,
-1188        s3_resource_path if s3_resource_path != "" else None,
-1189        content_type,
-1190        content_disposition,
-1191    )
+            
1319@init_global_client
+1320def write_s3_file(
+1321    s3object: S3Object | str | None,
+1322    file_content: BufferedReader | bytes,
+1323    s3_resource_path: str | None = None,
+1324    content_type: str | None = None,
+1325    content_disposition: str | None = None,
+1326) -> S3Object:
+1327    """
+1328    Upload a file to S3
+1329
+1330    Content type will be automatically guessed from path extension if left empty
+1331
+1332    See MDN for content_disposition: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
+1333    and content_type: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
+1334
+1335    """
+1336    return _client.write_s3_file(
+1337        s3object,
+1338        file_content,
+1339        s3_resource_path if s3_resource_path != "" else None,
+1340        content_type,
+1341        content_disposition,
+1342    )
 
@@ -5360,13 +6273,13 @@ and content_type: -
1194@init_global_client
-1195def sign_s3_objects(s3_objects: list[S3Object | str]) -> list[S3Object]:
-1196    """
-1197    Sign S3 objects to be used by anonymous users in public apps
-1198    Returns a list of signed s3 tokens
-1199    """
-1200    return _client.sign_s3_objects(s3_objects)
+            
1345@init_global_client
+1346def sign_s3_objects(s3_objects: list[S3Object | str]) -> list[S3Object]:
+1347    """
+1348    Sign S3 objects to be used by anonymous users in public apps
+1349    Returns a list of signed s3 tokens
+1350    """
+1351    return _client.sign_s3_objects(s3_objects)
 
@@ -5388,13 +6301,13 @@ Returns a list of signed s3 tokens

-
1203@init_global_client
-1204def sign_s3_object(s3_object: S3Object| str) -> S3Object:
-1205    """
-1206    Sign S3 object to be used by anonymous users in public apps
-1207    Returns a signed s3 object
-1208    """
-1209    return _client.sign_s3_object(s3_object)
+            
1354@init_global_client
+1355def sign_s3_object(s3_object: S3Object| str) -> S3Object:
+1356    """
+1357    Sign S3 object to be used by anonymous users in public apps
+1358    Returns a signed s3 object
+1359    """
+1360    return _client.sign_s3_object(s3_object)
 
@@ -5403,6 +6316,134 @@ Returns a signed s3 object

+
+
+ +
+
@init_global_client
+ + def + get_presigned_s3_public_urls( s3_objects: list[wmill.s3_types.S3Object | str], base_url: str | None = None) -> list[str]: + + + +
+ +
1363@init_global_client
+1364def get_presigned_s3_public_urls(
+1365    s3_objects: list[S3Object | str],
+1366    base_url: str | None = None,
+1367) -> list[str]:
+1368    """
+1369    Generate presigned public URLs for an array of S3 objects.
+1370    If an S3 object is not signed yet, it will be signed first.
+1371
+1372    Args:
+1373        s3_objects: List of S3 objects to sign
+1374        base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL)
+1375
+1376    Returns:
+1377        List of signed public URLs
+1378
+1379    Example:
+1380        >>> import wmill
+1381        >>> from wmill import S3Object
+1382        >>> s3_objs = [S3Object(s3="/path/to/file1.txt"), S3Object(s3="/path/to/file2.txt")]
+1383        >>> urls = wmill.get_presigned_s3_public_urls(s3_objs)
+1384    """
+1385    return _client.get_presigned_s3_public_urls(s3_objects, base_url)
+
+ + +

Generate presigned public URLs for an array of S3 objects. +If an S3 object is not signed yet, it will be signed first.

+ +

Args: + s3_objects: List of S3 objects to sign + base_url: Optional base URL for the presigned URLs (defaults to WM_BASE_URL)

+ +

Returns: + List of signed public URLs

+ +

Example:

+ +
+
+
+

import wmill + from wmill import S3Object + s3_objs = [S3Object(s3="/path/to/file1.txt"), S3Object(s3="/path/to/file2.txt")] + urls = wmill.get_presigned_s3_public_urls(s3_objs)

+
+
+
+
+ + +
+
+ +
+
@init_global_client
+ + def + get_presigned_s3_public_url( s3_object: wmill.s3_types.S3Object | str, base_url: str | None = None) -> str: + + + +
+ +
1388@init_global_client
+1389def get_presigned_s3_public_url(
+1390    s3_object: S3Object | str,
+1391    base_url: str | None = None,
+1392) -> str:
+1393    """
+1394    Generate a presigned public URL for an S3 object.
+1395    If the S3 object is not signed yet, it will be signed first.
+1396
+1397    Args:
+1398        s3_object: S3 object to sign
+1399        base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL)
+1400
+1401    Returns:
+1402        Signed public URL
+1403
+1404    Example:
+1405        >>> import wmill
+1406        >>> from wmill import S3Object
+1407        >>> s3_obj = S3Object(s3="/path/to/file.txt")
+1408        >>> url = wmill.get_presigned_s3_public_url(s3_obj)
+1409    """
+1410    return _client.get_presigned_s3_public_url(s3_object, base_url)
+
+ + +

Generate a presigned public URL for an S3 object. +If the S3 object is not signed yet, it will be signed first.

+ +

Args: + s3_object: S3 object to sign + base_url: Optional base URL for the presigned URL (defaults to WM_BASE_URL)

+ +

Returns: + Signed public URL

+ +

Example:

+ +
+
+
+

import wmill + from wmill import S3Object + s3_obj = S3Object(s3="/path/to/file.txt") + url = wmill.get_presigned_s3_public_url(s3_obj)

+
+
+
+
+ +
@@ -5416,12 +6457,12 @@ Returns a signed s3 object

-
1212@init_global_client
-1213def whoami() -> dict:
-1214    """
-1215    Returns the current user
-1216    """
-1217    return _client.user
+            
1413@init_global_client
+1414def whoami() -> dict:
+1415    """
+1416    Returns the current user
+1417    """
+1418    return _client.user
 
@@ -5443,13 +6484,13 @@ Returns a signed s3 object

-
1220@init_global_client
-1221@deprecate("Windmill().state")
-1222def get_state() -> Any:
-1223    """
-1224    Get the state
-1225    """
-1226    return _client.state
+            
1421@init_global_client
+1422@deprecate("Windmill().state")
+1423def get_state() -> Any:
+1424    """
+1425    Get the state
+1426    """
+1427    return _client.state
 
@@ -5470,13 +6511,13 @@ Returns a signed s3 object

-
1229@init_global_client
-1230def get_resource(
-1231    path: str,
-1232    none_if_undefined: bool = False,
-1233) -> dict | None:
-1234    """Get resource from Windmill"""
-1235    return _client.get_resource(path, none_if_undefined)
+            
1430@init_global_client
+1431def get_resource(
+1432    path: str,
+1433    none_if_undefined: bool = False,
+1434) -> dict | None:
+1435    """Get resource from Windmill"""
+1436    return _client.get_resource(path, none_if_undefined)
 
@@ -5497,12 +6538,12 @@ Returns a signed s3 object

-
1238@init_global_client
-1239def set_resource(path: str, value: Any, resource_type: str = "any") -> None:
-1240    """
-1241    Set the resource at a given path as a string, creating it if it does not exist
-1242    """
-1243    return _client.set_resource(value=value, path=path, resource_type=resource_type)
+            
1439@init_global_client
+1440def set_resource(path: str, value: Any, resource_type: str = "any") -> None:
+1441    """
+1442    Set the resource at a given path as a string, creating it if it does not exist
+1443    """
+1444    return _client.set_resource(value=value, path=path, resource_type=resource_type)
 
@@ -5510,6 +6551,78 @@ Returns a signed s3 object

+
+
+ +
+
@init_global_client
+ + def + list_resources( resource_type: str = None, page: int = None, per_page: int = None) -> list[dict]: + + + +
+ +
1447@init_global_client
+1448def list_resources(
+1449    resource_type: str = None,
+1450    page: int = None,
+1451    per_page: int = None,
+1452) -> list[dict]:
+1453    """List resources from Windmill workspace.
+1454    
+1455    Args:
+1456        resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3")
+1457        page: Optional page number for pagination
+1458        per_page: Optional number of results per page
+1459        
+1460    Returns:
+1461        List of resource dictionaries
+1462        
+1463    Example:
+1464        >>> # Get all resources
+1465        >>> all_resources = wmill.list_resources()
+1466        
+1467        >>> # Get only PostgreSQL resources
+1468        >>> pg_resources = wmill.list_resources(resource_type="postgresql")
+1469    """
+1470    return _client.list_resources(
+1471        resource_type=resource_type,
+1472        page=page,
+1473        per_page=per_page,
+1474    )
+
+ + +

List resources from Windmill workspace.

+ +

Args: + resource_type: Optional resource type to filter by (e.g., "postgresql", "mysql", "s3") + page: Optional page number for pagination + per_page: Optional number of results per page

+ +

Returns: + List of resource dictionaries

+ +

Example:

+ +
+
+
+

Get all resources

+ +

all_resources = wmill.list_resources()

+ +
>>> # Get only PostgreSQL resources
+>>> pg_resources = wmill.list_resources(resource_type="postgresql")
+
+
+
+
+
+ +
@@ -5523,12 +6636,12 @@ Returns a signed s3 object

-
1246@init_global_client
-1247def set_state(value: Any) -> None:
-1248    """
-1249    Set the state
-1250    """
-1251    return _client.set_state(value)
+            
1477@init_global_client
+1478def set_state(value: Any) -> None:
+1479    """
+1480    Set the state
+1481    """
+1482    return _client.set_state(value)
 
@@ -5549,12 +6662,12 @@ Returns a signed s3 object

-
1254@init_global_client
-1255def set_progress(value: int, job_id: Optional[str] = None) -> None:
-1256    """
-1257    Set the progress
-1258    """
-1259    return _client.set_progress(value, job_id)
+            
1485@init_global_client
+1486def set_progress(value: int, job_id: Optional[str] = None) -> None:
+1487    """
+1488    Set the progress
+1489    """
+1490    return _client.set_progress(value, job_id)
 
@@ -5575,12 +6688,12 @@ Returns a signed s3 object

-
1262@init_global_client
-1263def get_progress(job_id: Optional[str] = None) -> Any:
-1264    """
-1265    Get the progress
-1266    """
-1267    return _client.get_progress(job_id)
+            
1493@init_global_client
+1494def get_progress(job_id: Optional[str] = None) -> Any:
+1495    """
+1496    Get the progress
+1497    """
+1498    return _client.get_progress(job_id)
 
@@ -5600,11 +6713,11 @@ Returns a signed s3 object

-
1270def set_shared_state_pickle(value: Any, path="state.pickle") -> None:
-1271    """
-1272    Set the state in the shared folder using pickle
-1273    """
-1274    return Windmill.set_shared_state_pickle(value=value, path=path)
+            
1501def set_shared_state_pickle(value: Any, path="state.pickle") -> None:
+1502    """
+1503    Set the state in the shared folder using pickle
+1504    """
+1505    return Windmill.set_shared_state_pickle(value=value, path=path)
 
@@ -5625,12 +6738,12 @@ Returns a signed s3 object

-
1277@deprecate("Windmill.get_shared_state_pickle(...)")
-1278def get_shared_state_pickle(path="state.pickle") -> Any:
-1279    """
-1280    Get the state in the shared folder using pickle
-1281    """
-1282    return Windmill.get_shared_state_pickle(path=path)
+            
1508@deprecate("Windmill.get_shared_state_pickle(...)")
+1509def get_shared_state_pickle(path="state.pickle") -> Any:
+1510    """
+1511    Get the state in the shared folder using pickle
+1512    """
+1513    return Windmill.get_shared_state_pickle(path=path)
 
@@ -5650,11 +6763,11 @@ Returns a signed s3 object

-
1285def set_shared_state(value: Any, path="state.json") -> None:
-1286    """
-1287    Set the state in the shared folder using pickle
-1288    """
-1289    return Windmill.set_shared_state(value=value, path=path)
+            
1516def set_shared_state(value: Any, path="state.json") -> None:
+1517    """
+1518    Set the state in the shared folder using pickle
+1519    """
+1520    return Windmill.set_shared_state(value=value, path=path)
 
@@ -5674,11 +6787,11 @@ Returns a signed s3 object

-
1292def get_shared_state(path="state.json") -> None:
-1293    """
-1294    Get the state in the shared folder using pickle
-1295    """
-1296    return Windmill.get_shared_state(path=path)
+            
1523def get_shared_state(path="state.json") -> None:
+1524    """
+1525    Get the state in the shared folder using pickle
+1526    """
+1527    return Windmill.get_shared_state(path=path)
 
@@ -5699,12 +6812,12 @@ Returns a signed s3 object

-
1299@init_global_client
-1300def get_variable(path: str) -> str:
-1301    """
-1302    Returns the variable at a given path as a string
-1303    """
-1304    return _client.get_variable(path)
+            
1530@init_global_client
+1531def get_variable(path: str) -> str:
+1532    """
+1533    Returns the variable at a given path as a string
+1534    """
+1535    return _client.get_variable(path)
 
@@ -5725,12 +6838,12 @@ Returns a signed s3 object

-
1307@init_global_client
-1308def set_variable(path: str, value: str, is_secret: bool = False) -> None:
-1309    """
-1310    Set the variable at a given path as a string, creating it if it does not exist
-1311    """
-1312    return _client.set_variable(path, value, is_secret)
+            
1538@init_global_client
+1539def set_variable(path: str, value: str, is_secret: bool = False) -> None:
+1540    """
+1541    Set the variable at a given path as a string, creating it if it does not exist
+1542    """
+1543    return _client.set_variable(path, value, is_secret)
 
@@ -5751,12 +6864,12 @@ Returns a signed s3 object

-
1315@init_global_client
-1316def get_flow_user_state(key: str) -> Any:
-1317    """
-1318    Get the user state of a flow at a given key
-1319    """
-1320    return _client.get_flow_user_state(key)
+            
1546@init_global_client
+1547def get_flow_user_state(key: str) -> Any:
+1548    """
+1549    Get the user state of a flow at a given key
+1550    """
+1551    return _client.get_flow_user_state(key)
 
@@ -5777,12 +6890,12 @@ Returns a signed s3 object

-
1323@init_global_client
-1324def set_flow_user_state(key: str, value: Any) -> None:
-1325    """
-1326    Set the user state of a flow at a given key
-1327    """
-1328    return _client.set_flow_user_state(key, value)
+            
1554@init_global_client
+1555def set_flow_user_state(key: str, value: Any) -> None:
+1556    """
+1557    Set the user state of a flow at a given key
+1558    """
+1559    return _client.set_flow_user_state(key, value)
 
@@ -5803,9 +6916,9 @@ Returns a signed s3 object

-
1331@init_global_client
-1332def get_state_path() -> str:
-1333    return _client.state_path
+            
1562@init_global_client
+1563def get_state_path() -> str:
+1564    return _client.state_path
 
@@ -5824,9 +6937,9 @@ Returns a signed s3 object

-
1336@init_global_client
-1337def get_resume_urls(approver: str = None) -> dict:
-1338    return _client.get_resume_urls(approver)
+            
1567@init_global_client
+1568def get_resume_urls(approver: str = None) -> dict:
+1569    return _client.get_resume_urls(approver)
 
@@ -5845,23 +6958,23 @@ Returns a signed s3 object

-
1341@init_global_client
-1342def request_interactive_slack_approval(
-1343    slack_resource_path: str,
-1344    channel_id: str,
-1345    message: str = None,
-1346    approver: str = None,
-1347    default_args_json: dict = None,
-1348    dynamic_enums_json: dict = None,
-1349) -> None:
-1350    return _client.request_interactive_slack_approval(
-1351        slack_resource_path=slack_resource_path,
-1352        channel_id=channel_id,
-1353        message=message,
-1354        approver=approver,
-1355        default_args_json=default_args_json,
-1356        dynamic_enums_json=dynamic_enums_json,
-1357    )
+            
1572@init_global_client
+1573def request_interactive_slack_approval(
+1574    slack_resource_path: str,
+1575    channel_id: str,
+1576    message: str = None,
+1577    approver: str = None,
+1578    default_args_json: dict = None,
+1579    dynamic_enums_json: dict = None,
+1580) -> None:
+1581    return _client.request_interactive_slack_approval(
+1582        slack_resource_path=slack_resource_path,
+1583        channel_id=channel_id,
+1584        message=message,
+1585        approver=approver,
+1586        default_args_json=default_args_json,
+1587        dynamic_enums_json=dynamic_enums_json,
+1588    )
 
@@ -5880,16 +6993,55 @@ Returns a signed s3 object

-
1360@init_global_client
-1361def send_teams_message(
-1362    conversation_id: str, text: str, success: bool, card_block: dict = None
-1363):
-1364    return _client.send_teams_message(conversation_id, text, success, card_block)
+            
1591@init_global_client
+1592def send_teams_message(
+1593    conversation_id: str, text: str, success: bool, card_block: dict = None
+1594):
+1595    return _client.send_teams_message(conversation_id, text, success, card_block)
 
+
+
+ +
+
@init_global_client
+ + def + cancel_job(job_id: str, reason: str = None) -> str: + + + +
+ +
1598@init_global_client
+1599def cancel_job(job_id: str, reason: str = None) -> str:
+1600    """Cancel a specific job by ID.
+1601
+1602    Args:
+1603        job_id: UUID of the job to cancel
+1604        reason: Optional reason for cancellation
+1605
+1606    Returns:
+1607        Response message from the cancel endpoint
+1608    """
+1609    return _client.cancel_job(job_id, reason)
+
+ + +

Cancel a specific job by ID.

+ +

Args: + job_id: UUID of the job to cancel + reason: Optional reason for cancellation

+ +

Returns: + Response message from the cancel endpoint

+
+ +
@@ -5903,10 +7055,10 @@ Returns a signed s3 object

-
1367@init_global_client
-1368def cancel_running() -> dict:
-1369    """Cancel currently running executions of the same script."""
-1370    return _client.cancel_running()
+            
1612@init_global_client
+1613def cancel_running() -> dict:
+1614    """Cancel currently running executions of the same script."""
+1615    return _client.cancel_running()
 
@@ -5927,29 +7079,29 @@ Returns a signed s3 object

-
1373@init_global_client
-1374def run_script(
-1375    path: str = None,
-1376    hash_: str = None,
-1377    args: dict = None,
-1378    timeout: dt.timedelta | int | float = None,
-1379    verbose: bool = False,
-1380    cleanup: bool = True,
-1381    assert_result_is_not_none: bool = True,
-1382) -> Any:
-1383    """Run script synchronously and return its result.
-1384    
-1385    .. deprecated:: Use run_script_by_path or run_script_by_hash instead.
-1386    """
-1387    return _client.run_script(
-1388        path=path,
-1389        hash_=hash_,
-1390        args=args,
-1391        verbose=verbose,
-1392        assert_result_is_not_none=assert_result_is_not_none,
-1393        cleanup=cleanup,
-1394        timeout=timeout,
-1395    )
+            
1618@init_global_client
+1619def run_script(
+1620    path: str = None,
+1621    hash_: str = None,
+1622    args: dict = None,
+1623    timeout: dt.timedelta | int | float = None,
+1624    verbose: bool = False,
+1625    cleanup: bool = True,
+1626    assert_result_is_not_none: bool = True,
+1627) -> Any:
+1628    """Run script synchronously and return its result.
+1629    
+1630    .. deprecated:: Use run_script_by_path or run_script_by_hash instead.
+1631    """
+1632    return _client.run_script(
+1633        path=path,
+1634        hash_=hash_,
+1635        args=args,
+1636        verbose=verbose,
+1637        assert_result_is_not_none=assert_result_is_not_none,
+1638        cleanup=cleanup,
+1639        timeout=timeout,
+1640    )
 
@@ -5972,24 +7124,24 @@ Returns a signed s3 object

-
1398@init_global_client
-1399def run_script_by_path(
-1400    path: str,
-1401    args: dict = None,
-1402    timeout: dt.timedelta | int | float = None,
-1403    verbose: bool = False,
-1404    cleanup: bool = True,
-1405    assert_result_is_not_none: bool = True,
-1406) -> Any:
-1407    """Run script by path synchronously and return its result."""
-1408    return _client.run_script_by_path(
-1409        path=path,
-1410        args=args,
-1411        verbose=verbose,
-1412        assert_result_is_not_none=assert_result_is_not_none,
-1413        cleanup=cleanup,
-1414        timeout=timeout,
-1415    )
+            
1643@init_global_client
+1644def run_script_by_path(
+1645    path: str,
+1646    args: dict = None,
+1647    timeout: dt.timedelta | int | float = None,
+1648    verbose: bool = False,
+1649    cleanup: bool = True,
+1650    assert_result_is_not_none: bool = True,
+1651) -> Any:
+1652    """Run script by path synchronously and return its result."""
+1653    return _client.run_script_by_path(
+1654        path=path,
+1655        args=args,
+1656        verbose=verbose,
+1657        assert_result_is_not_none=assert_result_is_not_none,
+1658        cleanup=cleanup,
+1659        timeout=timeout,
+1660    )
 
@@ -6010,24 +7162,24 @@ Returns a signed s3 object

-
1418@init_global_client
-1419def run_script_by_hash(
-1420    hash_: str,
-1421    args: dict = None,
-1422    timeout: dt.timedelta | int | float = None,
-1423    verbose: bool = False,
-1424    cleanup: bool = True,
-1425    assert_result_is_not_none: bool = True,
-1426) -> Any:
-1427    """Run script by hash synchronously and return its result."""
-1428    return _client.run_script_by_hash(
-1429        hash_=hash_,
-1430        args=args,
-1431        verbose=verbose,
-1432        assert_result_is_not_none=assert_result_is_not_none,
-1433        cleanup=cleanup,
-1434        timeout=timeout,
-1435    )
+            
1663@init_global_client
+1664def run_script_by_hash(
+1665    hash_: str,
+1666    args: dict = None,
+1667    timeout: dt.timedelta | int | float = None,
+1668    verbose: bool = False,
+1669    cleanup: bool = True,
+1670    assert_result_is_not_none: bool = True,
+1671) -> Any:
+1672    """Run script by hash synchronously and return its result."""
+1673    return _client.run_script_by_hash(
+1674        hash_=hash_,
+1675        args=args,
+1676        verbose=verbose,
+1677        assert_result_is_not_none=assert_result_is_not_none,
+1678        cleanup=cleanup,
+1679        timeout=timeout,
+1680    )
 
@@ -6035,6 +7187,38 @@ Returns a signed s3 object

+
+
+ +
+
@init_global_client
+ + def + run_inline_script_preview(content: str, language: str, args: dict = None) -> Any: + + + +
+ +
1682@init_global_client
+1683def run_inline_script_preview(
+1684    content: str,
+1685    language: str,
+1686    args: dict = None,
+1687) -> Any:
+1688    """Run a script on the current worker without creating a job"""
+1689    return _client.run_inline_script_preview(
+1690        content=content,
+1691        language=language,
+1692        args=args,
+1693    )
+
+ + +

Run a script on the current worker without creating a job

+
+ +
@@ -6048,14 +7232,14 @@ Returns a signed s3 object

-
1438@init_global_client
-1439def username_to_email(username: str) -> str:
-1440    """
-1441    Get email from workspace username
-1442    This method is particularly useful for apps that require the email address of the viewer.
-1443    Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.
-1444    """
-1445    return _client.username_to_email(username)
+            
1695@init_global_client
+1696def username_to_email(username: str) -> str:
+1697    """
+1698    Get email from workspace username
+1699    This method is particularly useful for apps that require the email address of the viewer.
+1700    Indeed, in the viewer context WM_USERNAME is set to the username of the viewer but WM_EMAIL is set to the email of the creator of the app.
+1701    """
+1702    return _client.username_to_email(username)
 
@@ -6065,6 +7249,48 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
+
+
+ +
+
@init_global_client
+ + def + datatable(name: str = 'main') -> DataTableClient: + + + +
+ +
1705@init_global_client
+1706def datatable(name: str = "main") -> DataTableClient:
+1707    return _client.datatable(name)
+
+ + + + +
+
+ +
+
@init_global_client
+ + def + ducklake(name: str = 'main') -> DucklakeClient: + + + +
+ +
1709@init_global_client
+1710def ducklake(name: str = "main") -> DucklakeClient:
+1711    return _client.ducklake(name)
+
+ + + +
@@ -6077,57 +7303,57 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b -
1448def task(*args, **kwargs):
-1449    from inspect import signature
-1450
-1451    def f(func, tag: str | None = None):
-1452        if (
-1453            os.environ.get("WM_JOB_ID") is None
-1454            or os.environ.get("MAIN_OVERRIDE") == func.__name__
-1455        ):
-1456
-1457            def inner(*args, **kwargs):
-1458                return func(*args, **kwargs)
-1459
-1460            return inner
-1461        else:
-1462
-1463            def inner(*args, **kwargs):
-1464                global _client
-1465                if _client is None:
-1466                    _client = Windmill()
-1467                w_id = os.environ.get("WM_WORKSPACE")
-1468                job_id = os.environ.get("WM_JOB_ID")
-1469                f_name = func.__name__
-1470                json = kwargs
-1471                params = list(signature(func).parameters)
-1472                for i, arg in enumerate(args):
-1473                    if i < len(params):
-1474                        p = params[i]
-1475                        key = p
-1476                        if key not in kwargs:
-1477                            json[key] = arg
-1478
-1479                params = {}
-1480                if tag is not None:
-1481                    params["tag"] = tag
-1482                w_as_code_response = _client.post(
-1483                    f"/w/{w_id}/jobs/run/workflow_as_code/{job_id}/{f_name}",
-1484                    json={"args": json},
-1485                    params=params,
-1486                )
-1487                job_id = w_as_code_response.text
-1488                print(f"Executing task {func.__name__} on job {job_id}")
-1489                job_result = _client.wait_job(job_id)
-1490                print(f"Task {func.__name__} ({job_id}) completed")
-1491                return job_result
-1492
-1493            return inner
-1494
-1495    if len(args) == 1 and len(kwargs) == 0 and callable(args[0]):
-1496        return f(args[0], None)
-1497    else:
-1498        return lambda x: f(x, kwargs.get("tag"))
+            
1713def task(*args, **kwargs):
+1714    from inspect import signature
+1715
+1716    def f(func, tag: str | None = None):
+1717        if (
+1718            os.environ.get("WM_JOB_ID") is None
+1719            or os.environ.get("MAIN_OVERRIDE") == func.__name__
+1720        ):
+1721
+1722            def inner(*args, **kwargs):
+1723                return func(*args, **kwargs)
+1724
+1725            return inner
+1726        else:
+1727
+1728            def inner(*args, **kwargs):
+1729                global _client
+1730                if _client is None:
+1731                    _client = Windmill()
+1732                w_id = os.environ.get("WM_WORKSPACE")
+1733                job_id = os.environ.get("WM_JOB_ID")
+1734                f_name = func.__name__
+1735                json = kwargs
+1736                params = list(signature(func).parameters)
+1737                for i, arg in enumerate(args):
+1738                    if i < len(params):
+1739                        p = params[i]
+1740                        key = p
+1741                        if key not in kwargs:
+1742                            json[key] = arg
+1743
+1744                params = {}
+1745                if tag is not None:
+1746                    params["tag"] = tag
+1747                w_as_code_response = _client.post(
+1748                    f"/w/{w_id}/jobs/run/workflow_as_code/{job_id}/{f_name}",
+1749                    json={"args": json},
+1750                    params=params,
+1751                )
+1752                job_id = w_as_code_response.text
+1753                print(f"Executing task {func.__name__} on job {job_id}")
+1754                job_result = _client.wait_job(job_id)
+1755                print(f"Task {func.__name__} ({job_id}) completed")
+1756                return job_result
+1757
+1758            return inner
+1759
+1760    if len(args) == 1 and len(kwargs) == 0 and callable(args[0]):
+1761        return f(args[0], None)
+1762    else:
+1763        return lambda x: f(x, kwargs.get("tag"))
 
@@ -6145,15 +7371,15 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1500def parse_resource_syntax(s: str) -> Optional[str]:
-1501    """Parse resource syntax from string."""
-1502    if s is None:
-1503        return None
-1504    if s.startswith("$res:"):
-1505        return s[5:]
-1506    if s.startswith("res://"):
-1507        return s[6:]
-1508    return None
+            
1765def parse_resource_syntax(s: str) -> Optional[str]:
+1766    """Parse resource syntax from string."""
+1767    if s is None:
+1768        return None
+1769    if s.startswith("$res:"):
+1770        return s[5:]
+1771    if s.startswith("res://"):
+1772        return s[6:]
+1773    return None
 
@@ -6173,15 +7399,15 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1510def parse_s3_object(s3_object: S3Object | str) -> S3Object:
-1511    """Parse S3 object from string or S3Object format."""
-1512    if isinstance(s3_object, str):
-1513        match = re.match(r'^s3://([^/]*)/(.*)$', s3_object)
-1514        if match:
-1515            return S3Object(s3=match.group(2) or "", storage=match.group(1) or None)
-1516        return S3Object(s3="")
-1517    else:
-1518        return s3_object
+            
1775def parse_s3_object(s3_object: S3Object | str) -> S3Object:
+1776    """Parse S3 object from string or S3Object format."""
+1777    if isinstance(s3_object, str):
+1778        match = re.match(r'^s3://([^/]*)/(.*)$', s3_object)
+1779        if match:
+1780            return S3Object(s3=match.group(2) or "", storage=match.group(1) or None)
+1781        return S3Object(s3="")
+1782    else:
+1783        return s3_object
 
@@ -6201,11 +7427,11 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1522def parse_variable_syntax(s: str) -> Optional[str]:
-1523    """Parse variable syntax from string."""
-1524    if s.startswith("var://"):
-1525        return s[6:]
-1526    return None
+            
1787def parse_variable_syntax(s: str) -> Optional[str]:
+1788    """Parse variable syntax from string."""
+1789    if s.startswith("var://"):
+1790        return s[6:]
+1791    return None
 
@@ -6225,13 +7451,13 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1529def append_to_result_stream(text: str) -> None:
-1530    """Append a text to the result stream.
-1531    
-1532    Args:
-1533        text: text to append to the result stream
-1534    """
-1535    print("WM_STREAM: {}".format(text.replace(chr(10), '\\n')))
+            
1794def append_to_result_stream(text: str) -> None:
+1795    """Append a text to the result stream.
+1796    
+1797    Args:
+1798        text: text to append to the result stream
+1799    """
+1800    print("WM_STREAM: {}".format(text.replace(chr(10), '\\n')))
 
@@ -6254,14 +7480,14 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
-
1537def stream_result(stream) -> None:
-1538    """Stream to the result stream.
-1539    
-1540    Args:
-1541        stream: stream to stream to the result stream
-1542    """
-1543    for text in stream:
-1544        append_to_result_stream(text)
+            
1802def stream_result(stream) -> None:
+1803    """Stream to the result stream.
+1804    
+1805    Args:
+1806        stream: stream to stream to the result stream
+1807    """
+1808    for text in stream:
+1809        append_to_result_stream(text)
 
@@ -6272,6 +7498,378 @@ Indeed, in the viewer context WM_USERNAME is set to the username of the viewer b
+
+
+ +
+ + class + DataTableClient: + + + +
+ +
1811class DataTableClient:
+1812    def __init__(self, client: Windmill, name: str):
+1813        self.client = client
+1814        self.name = name
+1815    def query(self, sql: str, *args):
+1816        args_dict = {}
+1817        args_def = ""
+1818        for i, arg in enumerate(args):
+1819            args_dict[f"arg{i+1}"] = arg
+1820            args_def += f"-- ${i+1} arg{i+1}\n"
+1821        sql = args_def + sql
+1822        return SqlQuery(
+1823            sql, 
+1824            lambda sql: self.client.run_inline_script_preview(
+1825                content=sql,
+1826                language="postgresql",
+1827                args={"database": f"datatable://{self.name}", **args_dict},
+1828            )
+1829        )
+
+ + + + +
+ +
+ + DataTableClient(client: Windmill, name: str) + + + +
+ +
1812    def __init__(self, client: Windmill, name: str):
+1813        self.client = client
+1814        self.name = name
+
+ + + + +
+
+
+ client + + +
+ + + + +
+
+
+ name + + +
+ + + + +
+
+ +
+ + def + query(self, sql: str, *args): + + + +
+ +
1815    def query(self, sql: str, *args):
+1816        args_dict = {}
+1817        args_def = ""
+1818        for i, arg in enumerate(args):
+1819            args_dict[f"arg{i+1}"] = arg
+1820            args_def += f"-- ${i+1} arg{i+1}\n"
+1821        sql = args_def + sql
+1822        return SqlQuery(
+1823            sql, 
+1824            lambda sql: self.client.run_inline_script_preview(
+1825                content=sql,
+1826                language="postgresql",
+1827                args={"database": f"datatable://{self.name}", **args_dict},
+1828            )
+1829        )
+
+ + + + +
+
+
+ +
+ + class + DucklakeClient: + + + +
+ +
1831class DucklakeClient:
+1832    def __init__(self, client: Windmill, name: str):
+1833        self.client = client
+1834        self.name = name
+1835    def query(self, sql: str, **kwargs):
+1836        args_dict = {}
+1837        args_def = ""
+1838        for key, value in kwargs.items():
+1839            args_dict[key] = value
+1840            args_def += f"-- ${key} ({infer_sql_type(value)})\n"
+1841        attach = f"ATTACH 'ducklake://{self.name}' AS dl;USE dl;\n"
+1842        sql = args_def + attach + sql
+1843        return SqlQuery(
+1844            sql, 
+1845            lambda sql: self.client.run_inline_script_preview(
+1846                content=sql,
+1847                language="duckdb",
+1848                args=args_dict,
+1849            )
+1850        )
+
+ + + + +
+ +
+ + DucklakeClient(client: Windmill, name: str) + + + +
+ +
1832    def __init__(self, client: Windmill, name: str):
+1833        self.client = client
+1834        self.name = name
+
+ + + + +
+
+
+ client + + +
+ + + + +
+
+
+ name + + +
+ + + + +
+
+ +
+ + def + query(self, sql: str, **kwargs): + + + +
+ +
1835    def query(self, sql: str, **kwargs):
+1836        args_dict = {}
+1837        args_def = ""
+1838        for key, value in kwargs.items():
+1839            args_dict[key] = value
+1840            args_def += f"-- ${key} ({infer_sql_type(value)})\n"
+1841        attach = f"ATTACH 'ducklake://{self.name}' AS dl;USE dl;\n"
+1842        sql = args_def + attach + sql
+1843        return SqlQuery(
+1844            sql, 
+1845            lambda sql: self.client.run_inline_script_preview(
+1846                content=sql,
+1847                language="duckdb",
+1848                args=args_dict,
+1849            )
+1850        )
+
+ + + + +
+
+
+ +
+ + class + SqlQuery: + + + +
+ +
1852class SqlQuery:
+1853    def __init__(self, sql: str, fetch_fn):
+1854        self.sql = sql
+1855        self.fetch_fn = fetch_fn
+1856    def fetch(self, result_collection: str | None = None):
+1857        sql = self.sql
+1858        if result_collection is not None:
+1859            sql = f'-- result_collection={result_collection}\n{sql}'
+1860        return self.fetch_fn(sql)
+1861    def fetch_one(self):
+1862        return self.fetch(result_collection="last_statement_first_row")
+
+ + + + +
+ +
+ + SqlQuery(sql: str, fetch_fn) + + + +
+ +
1853    def __init__(self, sql: str, fetch_fn):
+1854        self.sql = sql
+1855        self.fetch_fn = fetch_fn
+
+ + + + +
+
+
+ sql + + +
+ + + + +
+
+
+ fetch_fn + + +
+ + + + +
+
+ +
+ + def + fetch(self, result_collection: str | None = None): + + + +
+ +
1856    def fetch(self, result_collection: str | None = None):
+1857        sql = self.sql
+1858        if result_collection is not None:
+1859            sql = f'-- result_collection={result_collection}\n{sql}'
+1860        return self.fetch_fn(sql)
+
+ + + + +
+
+ +
+ + def + fetch_one(self): + + + +
+ +
1861    def fetch_one(self):
+1862        return self.fetch(result_collection="last_statement_first_row")
+
+ + + + +
+
+
+ +
+ + def + infer_sql_type(value) -> str: + + + +
+ +
1864def infer_sql_type(value) -> str:
+1865    """
+1866    DuckDB executor requires explicit argument types at declaration
+1867    These types exist in both DuckDB and Postgres
+1868    Check that the types exist if you plan to extend this function for other SQL engines.
+1869    """
+1870    if isinstance(value, bool):
+1871        # Check bool before int since bool is a subclass of int in Python
+1872        return "BOOLEAN"
+1873    elif isinstance(value, int):
+1874        return "BIGINT"
+1875    elif isinstance(value, float):
+1876        return "DOUBLE PRECISION"
+1877    elif value is None:
+1878        return "TEXT"
+1879    elif isinstance(value, str):
+1880        return "TEXT"
+1881    elif isinstance(value, dict) or isinstance(value, list):
+1882        return "JSON"
+1883    else:
+1884        return "TEXT"
+
+ + +

DuckDB executor requires explicit argument types at declaration +These types exist in both DuckDB and Postgres +Check that the types exist if you plan to extend this function for other SQL engines.

+
+ +