Executables¶
Kinds of computation¶
- data source
Executable classes not requiring any other resources other than the parameters are called the data source. That is to say, an Executable class is a data source if its
run
method overridingExecutable.run
does not taking any arguments. Example:Loader
(*args, **kwds)Data source loaded from disk. - data sink
Executable classes requiring other resource are called the data sink. That is to say, an Executable class is a data sink if its
run
method overridingExecutable.run
takes at least one argument. Example:Plotter
(*args, **kwds)An Assembler
subclass specialized for plotting.- app
- application
Executable classes which orchestrate other executable classes are called application or app. Note that an app is also a data source since it does not require additional data source.
compapp.apps
defines a few base classes for this purpose:Computer
(*args, **kwds)Application base class. Memoizer
(*args, **kwds)Computer
withHashDataStore
.
Taxonomy of executables¶
Various Executable
subclasses provided by compapp can be understood
well when kind of computations, the type of datastore
and used
plugins are compared.
Executables with SubDataStore
require parent executable. It fits
well with Loader
since just loading data is useless. It also
fits well with Plotter
since it is a data sink, i.e., it needs data
for plotting. Since Plotter
needs some external data
source, it makes sense that it is not a subclass of Computer
.
Executable | datastore |
Computation |
---|---|---|
Loader |
SubDataStore |
data source |
Plotter |
SubDataStore |
data sink |
Computer |
DirectoryDataStore |
app |
Memoizer |
HashDataStore |
app |