Skip to content

Improve overall system to control operators parameters #24

@geoffroy-noel-ddh

Description

@geoffroy-noel-ddh

Currently the operators have hard-coded parameters defined as constants in the operator.py or /app/processor.py files.

They can accept some parameters from framesense command line with the -p argument (e.g. TODO).

Here's a better system:

  • each operator declares all their params and default values in /operators/OPERATOR/params.json
  • user can override those defaults in collections.json under meta.params.OPERATOR.P
  • user can also override all of the above with environment variable OPERATOR_P
  • based on the above, Operator._before_apply() will compute final values for any operator
  • it will also save those values under /operators/OPERATOR/app/params.json as a way to communicate them to the container
  • we can then retire the -p argument of framesense
  • we can also declare pre-existing params and constants in all existing operators using this new system
  • some keys can have _MULTILINES suffix to express a multiline string (which is not allowed in json) as an array of strings.

This system is superior because it is more standard across operators, it is more transparent for the users and developers and it help Operator provide functional abstractions for simpler and more consistent manipulations of params.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions