That’s probably a smarter idea, but I have always reformatted the code to work directly with pywin32 calls, so you end up with a function like
def hueSaturation(hue, saturation, lightness, colorize=False, psApp=None):
if psApp is None:
psApp = win32.gencache.EnsureDispatch('Photoshop.Application')
dialogMode = 3
idHStr = psApp.CharIDToTypeID( "HStr" )
desc169 = win32.gencache.EnsureDispatch( "Photoshop.ActionDescriptor" )
idpresetKind = psApp.StringIDToTypeID( "presetKind" )
idpresetKindType = psApp.StringIDToTypeID( "presetKindType" )
idpresetKindCustom = psApp.StringIDToTypeID( "presetKindCustom" )
desc169.PutEnumerated( idpresetKind, idpresetKindType, idpresetKindCustom )
idClrz = psApp.CharIDToTypeID( "Clrz" )
desc169.PutBoolean( idClrz, colorize )
idAdjs = psApp.CharIDToTypeID( "Adjs" )
list27 = win32.gencache.EnsureDispatch( "Photoshop.ActionList" )
desc170 = win32.gencache.EnsureDispatch( "Photoshop.ActionDescriptor" )
idH = psApp.CharIDToTypeID( "H " )
desc170.PutInteger( idH, hue )
idStrt = psApp.CharIDToTypeID( "Strt" )
desc170.PutInteger( idStrt, saturation )
idLght = psApp.CharIDToTypeID( "Lght" )
desc170.PutInteger( idLght, lightness )
idHsttwo = psApp.CharIDToTypeID( "Hst2" )
list27.PutObject( idHsttwo, desc170 )
desc169.PutList( idAdjs, list27 )
psApp.ExecuteAction( idHStr, desc169, dialogMode )