how would i go about opening the save as menu using python?
In order to open the file browser you need the operator's invoke() function to be called. This can be accomplish by setting the execution context. Pass the argument 'INVOKE_DEFAULT' into the function call and the file browser will open.

bpy.ops.wm.save_as_mainfile('INVOKE_DEFAULT')


The manual explains the execution context in the following way:


  Execution Context
  
  When calling an operator you may want to pass the execution context.
  
  This determines the context that is given for the operator to run in, and whether invoke() is called or only execute().
  
  ‘EXEC_DEFAULT’ is used by default, running only the execute() method, but you may want the operator to take user interaction with ‘INVOKE_DEFAULT’ which will also call invoke() if existing.
  
  [...]