Dataflows and packages can import function and types from other packages. This hierarchical import structure allows you to reuse code and types across multiple projects.
Importing a package involves these steps:
- specifying the package to import
- specifying the functions
- specifying the types to import
You can either import functions or types or both.
Importing Functions
Use keyword: functions
in a imports
sections to import functions.
Syntax:
imports:
- pkg: <package-namespace>/<package-name>@<package-version>
functions:
- name: <function-name>
alias: <alias-name>
Here is sample config to imports a function my-hello-fn
from the package sdf-test/hello
:
imports:
- pkg: sdf-test/hello@0.2.0
functions:
- name: my-hello-fn
alias: hello-fn
The function can be alias to a different name. In this case, the function my-hello-fn
is imported as hello-fn
.
After import, you can reference the function with the uses
keyword.
transforms:
- operator: filter-map
uses: hello-fn
Since hello-fn
is filter-map function, It can only be used in the filter-map
operator.
Importing Types
Similar to functions, you can also import types from other packages.
Syntax:
imports:
- pkg: <package-namespace>/<package-name>@<package-version>
types:
- name: <type-name>
Here is sample config that imports a type my-hello-type
from the package sdf-test/hello
:
imports:
- pkg: sdf-test/hello@0.2.0
types:
- name: my-hello-type
Of course you can mix and match functions and types in the same imports
section.
imports:
- pkg: sdf-test/hello@0.2.0
functions:
- name: my-hello-fn
types:
- name: my-hello-type
Recursive Imports
Recursive imports are also supported. You can import functions and types from packages that themselves import functions and types from other packages.