You can create a python package called lib
with a __init__.py
file and place it in ${pack_dir}/
to share code between Sensors and Python actions. For example, the path /opt/stackstorm/packs/my_pack/lib/
can contain library code you want to share between Sensors and Actions in pack my_pack
. Note, if you want to share common code across packs, the recommended approach is to pin the dependency in the packsâ requirements.txt and push the dependency to pypi
to be installable via pip. The lib
feature is restricted to scope of individual packs only. The lib
folder can contain any number of python files. These files can in turn contain library code, common utility functions and the like. You can then use import statements in sensors and actions like
from common_lib import base_function
to import base_function from a file named common_lib.py
inside /opt/stackstorm/packs/examples/lib/
folder. You can call code from dependencies in packâs requirements.txt from inside the files in the lib
folder as you are able to call them inside sensors and actions. Due to how python module loading works, files inside the lib folder cannot have the same names as standard python module names. Actions may fail with weird errors if you named your files same as standard python module names.
Note that this pack lib
folder is different from shell actionsâ lib
folder which is inside /opt/stackstorm/packs/some_pack/actions/lib/
. The pack lib
folder is never copied to a remote machine and is strictly for sharing code between sensors and actions.
This feature is turned off by default to avoid potential issues that might arise due to existing pack structures and lib imports. You may require to refactor your pack if enabling this feature breaks your packs. To enable this feature, simply set the following config option in /etc/st2/st2.conf
:
[packs] enable_common_libs = True
You have to restart st2 via st2ctl restart
for the config change to be picked up.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4