# Analyzer Framework An **analyzer** turns recorded data into a result: it takes data that a device or an experiment produced and computes something from it, such as the position of a peak or the splitting of two lines. It never talks to an instrument. plesty-lib's analyzer framework, in `plesty.lib.analyzer`, checks what goes in and comes out of an analyzer against what it declares, and records on every result how it was made. In PLESTY the data flows from devices, which produce it, through experiments, which record it, to analyzers, which interpret it. If you have not written an analyzer yet, start with [An Analyzer](../quickstart/analyzer.md) in the quick start. This chapter explains each part in full. ## In this chapter | Page | Covers | |---|---| | [Writing an Analyzer](writing.md) | the schemas, `analyze()`, what happens when an analyzer is called, the types a schema can name, the rules, and what will not change | | [Reports](reports.md) | the document an analysis produces: the default one, writing your own, tables and figures | | [SpectrumFit](spectrum_fit.md) | the analyzer that comes with plesty-lib: fitting the lines of a stack of spectra | | [Testing an Analyzer](../testing/analyzer.md) | the tests an analyzer module runs on itself, on generated inputs |