Figure 18 — Extension points¶
File: fig18_extensibility.pdf
Suggested caption. Extension points. Every part of the benchmark is registered by name. A plugin file registers new components, and the configuration selects them. A new pool generator, assembler, seam joiner or long-series generator becomes part of the comparison and of the relevant hypotheses without changes to the benchmark code.
How it works¶
- A plugin (
my_plugins.py) uses@registry.<kind>.register("name"), or the helpersregister_task,register_method,register_fidelity_group,register_test,register_hypothesis. Configloads the plugin everywhere: in every notebook, in subprocesses of other environments, and in the hypothesis part (the run configuration is stored intables/config.json).- Automatic expansion:
pool_suitesadds the whole assembly suite on a new pool generator (<prefix>_zseries,<prefix>_rand, …);extra_assemblersadds an assembler on every pool,extra_joinersa seam processing over the assemblers ofsmooth_paths;long_methodsadds a long-series generator as a method and a baseline;disabledswitches off any method or component by name. New methods enter the ranking and the research questions automatically (their family is read from the method spec); the confirmatory family covers Diffusion-TS and Chronos. - Any method can be the subject of the case study (
hypotheses.run --case-method … --noise-pair …). - Source:
marathonts/bench/registry.py,EXTENDING.md.