Commit graph

41 commits

Author SHA1 Message Date
Candice Bentéjac
f5b79f6d39 [core] Update initPipelines following removal of the "pipelines" folder
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.
2025-03-17 16:47:12 +01:00
Candice Bentéjac
04b36781d9 [core] Check folder is valid before loading templates from it 2024-09-27 11:23:44 +02:00
Candice Bentéjac
41e885d9ff Linting: Clean-up files 2024-09-12 10:50:13 +02:00
Candice Bentéjac
616318ace1 [core] Remove unused initPlugins method 2024-08-01 11:06:30 +01:00
Vincent Demoulin
a6be4e4938 Create Init functions for nodes, submitters and pipelines 2024-07-05 15:46:58 +02:00
Fabien Castan
d5e356c0aa [core] New dynamic output attributes 2024-06-15 19:47:29 +02:00
Fabien Castan
1f2fc36456 [core] Use warnings instead of raising an exception for duplicated node types 2024-06-15 17:13:06 +02:00
Candice Bentéjac
0b4e38fe9d [core] Correctly parse status in version names when it exists
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".
2023-04-07 13:29:17 +02:00
Candice Bentéjac
635f85e7fd Remove all references to pyCompatibility
- "pyCompatibility.basestring" are replaced by standard Python3 "str"
- "Sequence" and "Iterable" from "collections" are now directly imported
with "collections.abc"
2022-12-05 17:16:21 +01:00
Candice Bentéjac
1275975c6a [core] Check that ranges of a node's attributes are valid before loading it
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).
2022-09-28 10:47:00 +02:00
Candice Bentéjac
545f3a7218 [core] Check that the description of a node is correct before loading it
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).
2022-09-28 10:39:18 +02:00
Fabien Castan
d5b1d43b27
[core] fix logging of nodes loading 2022-08-03 23:41:55 +02:00
Candice Bentéjac
8fb0c778d1 Add support for external pipelines using project files
- 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.
2022-07-12 14:56:24 +02:00
Fabien Castan
0fec646776 Avoid to load project nodes twice 2022-02-22 15:12:00 +01:00
Fabien Castan
6f4541f76b [core] add env var to load nodes from multiple folders
New env var: MESHROOM_NODES_PATH
2022-02-06 20:17:28 +01:00
Fabien Castan
5ab6ed8e52 [core] Improve project files upgrade
- upgrade groups with changes in params
- new upgradeAttributeValues per node
2021-08-13 16:07:14 +02:00
Fabien Castan
0dfc80a12a [core] more precise warning on plugins load failure 2020-01-27 13:16:25 +01:00
Fabien Castan
ff96004421
Merge pull request #610 from mike1158/develop
Bugfix for MESHROOM_SUBMITTERS_PATH env variable
2020-01-03 13:26:04 +01:00
Fabien Castan
ad9a2153c5 [core] use logging for plugins loaded message 2019-09-12 21:18:11 +02:00
Michael S. Root
44779f6f0b Bugfix for MESHROOM_SUBMITTERS_PATH env variable
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.
2019-08-26 09:37:53 -07:00
Fabien Castan
c88c78b476
[cxFreeze] add comment 2019-04-11 11:40:08 +02:00
Fabien Castan
1c98e2afde [cxFreeze] add import of encodings to embed them in packaging 2019-04-08 10:17:13 +02:00
Yann Lanthony
e0ad807d84 [core] add Version class to help manipulate version names 2018-07-25 11:22:31 +02:00
Yann Lanthony
5f3ddffbbf [core] add 'unregisterNodeType' function 2018-07-19 13:50:45 +02:00
Yann Lanthony
95ca93c977 [core] add utility functions to get nodes and modules versions 2018-07-19 13:50:45 +02:00
Yann Lanthony
3129e5bff9 [core] variable renaming in loadPlugins function
remove references to "node"
2018-07-19 13:50:45 +02:00
Yann Lanthony
5d14189206 [graph] convert cache directory to unix-style filepath in cacheDir setter 2018-07-19 13:50:45 +02:00
Yann Lanthony
1f675a0e42 [core] split graph.py into separate modules
core.graph is now splitted into: 
  * graph.py
  * node.py
  * attribute.py
2018-06-26 12:19:14 +02:00
Yann Lanthony
94b895ae7c [core] use logging to report plugin loading errors 2018-06-06 11:47:52 +02:00
Yann Lanthony
773d9a6eed [core] use pkgutil to discover packages and modules
* avoid manually finding .py files
* abstract finding of .py/.pyc module files
2018-06-06 11:46:45 +02:00
Yann Lanthony
7da3f36442 [core] setup low-level logging 2018-04-13 20:42:44 +02:00
Fabien Castan
576124a342 fix package name when loading plugin 2018-01-05 16:43:36 +01:00
Yann Lanthony
928e3981b9 [core] load 'submitters' package from MESHROOM_SUBMITTERS_PATH
allow to instantiate submitters from another directory
2017-11-28 22:39:07 +01:00
Fabien Castan
1cd4034784 [core] status: add packageName, packageVersion, hostname, sessionUid 2017-11-23 20:07:06 +01:00
Yann Lanthony
851ebf60ee [core] add support for external graph computation via 'Submitter' API
* 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
2017-11-17 19:17:36 +01:00
Yann Lanthony
7da2466c74 [core] expose registerNodeType function 2017-10-30 10:30:28 +01:00
Fabien Castan
0b0ef01997 [core] add package and package version notion 2017-10-26 18:02:28 +02:00
Fabien Castan
40974149ee [core] cache directory per graph 2017-10-26 12:22:06 +02:00
Yann Lanthony
f9ff32c68a [core] plugin loading: ignore folders starting with __ 2017-10-19 16:22:04 +02:00
Fabien Castan
aacdf32915 Move nodes into subfolders 2017-10-16 12:23:58 +02:00
Yann Lanthony
e893a3dfc6 rename package 'processGraph' to 'core' 2017-10-09 12:16:20 +02:00
Renamed from meshroom/processGraph/__init__.py (Browse further)