(bpy.ops.mesh.transform.resize)how do I call this operator as a modal rather than directly executing it?
You can achieve the behavior you desire ( user interaction ) by explicitly passing the execution context (INVOKE_DEFAULT) as the first argument.

bpy.ops.mesh.transform.resize('INVOKE_DEFAULT', ......)


The default execution context is 'EXEC_DEFAULT' and is implicit for all operators. In such a case just the execute() method defined for the operator is called using the default or passed operator properties. But in case an operator defines an invoke/modal method and 'INVOKE_DEFAULT' is the execution context, either an operator properties user interface can be used to execute the operator or can be run modally or both.

Further details can be found at the links below:


bpy.ops calling operators and execution context
bpy.types.Operator