PEtab-dev / libpetab-python

Python package for working with PEtab files
https://libpetab-python.readthedocs.io
MIT License
14 stars 5 forks source link

Integration of extensions #273

Open dweindl opened 1 week ago

dweindl commented 1 week ago

With PEtab v2 we will introduce extensions to PEtab that will add new functionality. (In exceptional cases, extensions might also change some existing rules, but this is for another issue). For example, there is petab-select for model selection, units support for PEtab, and there were discussions to move the petab v1 visualization functionality to an extension.

Ideally, those extensions would be able to extend the current PEtab validator. Possibly they would also want to extend the petab.Problem API. Not sure what else.

The question is, whether those extensions should be directly incorporated here in libpetab, or whether we provide some plugin mechanism (via pluggy?). Currently, I'd prefer the latter, to avoid bloating this library and allow for mostly independent development of the extensions. However, this might make it difficult to handle any interaction of extensions. Happy to discuss other options and relevant points for plugins to modify libpetab behaviour.

dilpath commented 1 week ago

What kinds of interactions between extensions might be difficult to support via a plugin system?

If there are currently no cases, then I'm also in favor of the plugin system.

dweindl commented 1 week ago

What kinds of interactions between extensions might be difficult to support via a plugin system?

I don't have anything specific in mind. I hope extensions will be rather orthogonal.

If there are currently no cases, then I'm also in favor of the plugin system.

:+1: