Command Line Interface
Flows SDK provides a CLI tool that simplifies packaging multiple flows.
Bundling Flows
The CLI tool allows bundling one or multiple flows into a single zip file, which simplifies the process of
importing into a Hyperscience instance.
It can also extract the functions of code blocks into separate python files during the bundling process.
The tool is installed alongside Flows SDK when you install the Flows SDK wheel, and is accessible as hs-flows
.
Syntax
hs-flows bundle INPUT [INPUT ...] [-o OUTPUT] [-e ENTRY_POINT] [-c CODE_POLICY] [-h]
where:
INPUT
: Specifies the input of the bundle operation. Either a Python file (.py
extension) that contains a flow definition, or a directory containing multiple.py
flow definition files. Multiple input arguments are supported, allowing for an arbitrary number of flows to be bundled.OUTPUT
: Specifies the output of the bundle operation. Either a zip filename, or a directory inside which the tool will auto-generate a zip. Optional, defaults to current directory. CAUTION: this will overwrite the zip file if it already exists.ENTRY_POINT
: Specifies the name of the flow entry-point function inside the processed flow files. The entry-point function is the one that returns the final constructedFlow
object. Optional, defaults toentry_point_flow
.CODE_POLICY
: Policy for handling code blocks’ code,inline
orfiles
. Optional, defaults toinline
.inline
: Leave code inline in the json.files
: Extract code into separate python files in the zip. This allows working with (downloading and uploading) those files directly from the UI for code blocks, without having to reimport the flow that uses them. This may help for quicker iterations during flows’ development. However, the recommended mode of work in production scenarios is to keep these inline in the json and to always treat your Python-based flow definition as the source of truth.
-h
/--help
: Display a detailed help message and exit.
Examples
Print help message and exit:
hs-flows bundle --help
Bundle some_flow.py
into example.zip
with code inline in the json:
hs-flows bundle some_flow.py -o example.zip -c inline
Bundle all flows found in directory/flows
into a default zip (flows-<timestamp>.zip
) with code extracted into files:
hs-flows bundle directory/flows -c files
Bundle hello_flow.py
and fork_flow.py
into two_flows.zip
with code inline in the json:
hs-flows bundle hello_flow.py fork_flow.py -o two_flows.zip