# API reference Generated by autodoc straight from the source docstrings; nothing on these pages is hand-maintained, so nothing on them can drift. The module docstrings are the point. Most of moonbuggy's design rationale lives in them — why the parent must never import the module under test, why the cache key is deliberately coarse, why a mutation that cannot be applied raises rather than returning — and it survives into these pages rather than being flattened into a list of signatures. For the shape of the whole thing rather than the parts, read [Architecture](../architecture.md) first. ## Pipeline ```{eval-rst} .. automodule:: moonbuggy.discover :members: .. automodule:: moonbuggy.diffscope :members: .. automodule:: moonbuggy.generate :members: .. automodule:: moonbuggy.mutant :members: .. automodule:: moonbuggy.logging_policy :members: .. automodule:: moonbuggy.baseline :members: .. automodule:: moonbuggy.coverage_pass :members: .. automodule:: moonbuggy.runner :members: .. automodule:: moonbuggy.report :members: .. automodule:: moonbuggy.verify :members: .. automodule:: moonbuggy.accepted :members: ``` ## Mutation operators Adding an operator means adding a file here and nothing else -- no edit to the engine's traversal, no import list to update, no registration call to remember. See [Writing an operator](../writing-an-operator.md). ```{eval-rst} .. automodule:: moonbuggy.operators :members: .. automodule:: moonbuggy.operators.arithmetic :members: .. automodule:: moonbuggy.operators.boolean :members: .. automodule:: moonbuggy.operators.boundary :members: .. automodule:: moonbuggy.operators.comparison :members: .. automodule:: moonbuggy.operators.condition :members: .. automodule:: moonbuggy.operators.constant :members: .. automodule:: moonbuggy.operators.deletion :members: ``` ## Applying mutations ```{eval-rst} .. automodule:: moonbuggy.codeswap :members: .. automodule:: moonbuggy.inmemory :members: .. automodule:: moonbuggy.plugin :members: .. automodule:: moonbuggy.killreason :members: .. automodule:: moonbuggy.srcio :members: ``` ## Process management ```{eval-rst} .. automodule:: moonbuggy.forkserver :members: .. automodule:: moonbuggy.profiling :members: ``` ## Supporting ```{eval-rst} .. automodule:: moonbuggy.cache :members: .. automodule:: moonbuggy.cli :members: .. automodule:: moonbuggy.naive :members: ```