code: def g0w0_flow(workdir, scf_input, nscf_input, scr_input, sigma_inputs, manager=None, flow_class=Flow, allocate=True):
      
      flow = flow_class(workdir, manager=manager)
      work = G0W0Work(scf_input, nscf_input, scr_input, sigma_inputs)
      flow.register_work(work)
      if allocate: flow.allocate()
      return flow
docs: Build a :class:`Flow` for one-shot $G_0W_0$ calculations.
  
      Args:
          workdir: Working directory.
          scf_input: Input for the GS SCF run.
          nscf_input: Input for the NSCF run (band structure run).
          scr_input: Input for the SCR run.
          sigma_inputs: List of inputs for the SIGMA run.
          flow_class: Flow class
          manager: :class:`TaskManager` object used to submit the jobs.
                   Initialized from manager.yml if manager is None.
          allocate: True if the flow should be allocated before returning.
  
      Returns:
          :class:`Flow` object