Improve separation of sub-projects
Ideally, one would be able to just clone this project and use any function within nacsos_lib/
.
However, at this point, some "singleton" instances of queue and/or library may get spun up when importing types such as Artefact
. Furthermore, the artefact arguments to the functions somewhat rely on the execution context. Also the library.func()
decorator is very integral as it stands.
We should first answer the question: Do we really want to use the nacsos_lib outside the context of the pipelines server? If so:
- Clear up project structure to better separate the pipeline runtime from common types and utils
- Either have different modes, e.g. one where
library.func
gets emulated or find a different way to declare function metadata and register functions (e.g. by inheriting a certain abstract class)