After running qiime2.plugins.dada2.methods.denoise_single, I have a SampleData[DADA2Stats] artifact. When I try convert this to a visualization using qiime2.plugins.metadata.visualizers.tabulate, it errors out:
TypeError: Parameter 'input' requires an argument of type Metadata. An argument of type SampleData[DADA2Stats] was passed.
This issue is not present with the CLI version of tabulate, so I can use os.system() to run that within my script, but it's not ideal.
You're missing a .view() step prior to visualizing. Viewing as Metadata happens automatically on the CLI, which is why you don't see the same problem there.
Try adding a x = dada2_denoising_artifact.view(qiime2.Metadata) before tabulating, then feed x into the tabulate step.