Adding and Using psutil Dependency
Step 1 - Adding psutil
dependency
Open requirements.txt
and add psutil
==5.9.4
as follows:
requirements.txt
# # Specify any third-party Python modules that should be bundled with the # extension. uip-cli will automatically download and bundle the modules # upon running `uip build` or `uip push`. # # Refer to https://pip.pypa.io/en/stable/reference/requirements-file-format/ # for the expected format. # requests==2.28.2 psutil==5.9.4
In addition to modifying requirements.txt
, we will also need to modify src/extension.yml
as follows:
extension.yml
extension: name: ue-task version: "1.0.0" api_level: "1.4.0" requires_python: ">=2.6" zip_safe: false owner: name: Stonebranch organization: Stonebranch Inc. comments: | Created using ue-task template
On line 6, the zip_safe
property was set to false
. This must be done, anytime an Extension uses a third party dependency requiring the C runtime (e.g. psutil
).
Step 2 - Using the psutil
dependency
Open extension.py
and modify it as follows:
extension.py
from __future__ import (print_function) from universal_extension import UniversalExtension from universal_extension import ExtensionResult from universal_extension import logger import requests import psutil class Extension(UniversalExtension): """Required class that serves as the entry point for the extension """ def __init__(self): """Initializes an instance of the 'Extension' class """ # Call the base class initializer super(Extension, self).__init__() def extension_start(self, fields): """Required method that serves as the starting point for work performed for a task instance. Parameters ---------- fields : dict populated with field values from the associated task instance launched in the Controller Returns ------- ExtensionResult once the work is done, an instance of ExtensionResult must be returned. See the documentation for a full list of parameters that can be passed to the ExtensionResult class constructor """ resp = requests.get( 'https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass') ) print(resp.status_code) print(psutil.test()) # Return the result with a payload containing a Hello message... return ExtensionResult( unv_output='Hello Extension!' )
On line 6, we import the psutil
module
On lines 43, we print the result of psutil.test()