Commit graph

33 commits

Author SHA1 Message Date
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)