Since the "pipelines" folder does not exist anymore in Meshroom, there
is no use to try and look for any file in it. Instead, we now only look
for the paths that have been provided with the
`MESHROOM_PIPELINE_TEMPLATES_PATH` environment variable.
Version objects were meant to be used only with numerical characters,
separated by periods. Now that the version of Meshroom can also contain
its status ("develop" when it is in develop mode), the Version class
needs to be able to parse the status string as well as the version
components when it exists.
The status is handled as a separate string, which is returned in addition
to the tuple of integers when the whole version string is parsed in the
first place.
This prevents issues when opening files that have been saved with a version
like "x.x.x-develop".
- "pyCompatibility.basestring" are replaced by standard Python3 "str"
- "Sequence" and "Iterable" from "collections" are now directly imported
with "collections.abc"
For IntParam and FloatParam, which may have ranges, check before loading
the node that the non-null ranges are of the same type as the attribute.
If at least a range is not correct (e.g. "(0, 10, 0.1)" for a FloatParam,
for which "(0.0, 10.0, 0.1)" is expected), then the node is rejected (in
the same manner as when a default value is deemed invalid).
At Meshroom's launch, check that every node we attempt to load has a
valid description, i.e. that every parameter has a default value that
matches its parameter's type.
If there is at least one parameter with an incorrect default value,
the node is not loaded and a corresponding message will be displayed.
This prevents the user from loading erroneous nodes that may lead to
unexpected behaviours (such as a change of a node's UID between the
moment when it is written and the moment it is loaded).
- Support loading external pipelines as templates with project files
- Add template files for some standard pipelines
- Remove the hard-coded generation of new pipelines
- Update multiviewPipeline test: the multiviewPipeline test relied on the hard-coded generation of
pipelines.
Setting MESHROOM_SUBMITTERS_PATH caused meshroom to try to load the bundled
simpleFarmSubmitter plugin twice, ignoring the path in the variable.
I believe the problem lies with the way loadPlugins() works in meshroom.core,
because it's trying to import the package name "submitters" more than once. The
second time, import_module() just returns a reference to the
This is a revised PR based on feedback from the first one I submitted last year,
which went stale and then got erased as I was stumbling my way through git.
* defines a base class for Submitters
* add method in graph module to submit a graph computation to a Submitter
* add SimpleFarmSubmitter and generalize meshroom_submit binary