- "meshroom -h / --help": now provides command line documentation (so
argparse is done before GUI creation)
- new positional argument to set project file or input folder
- new "--pipeline" option to set a default pipeline, also support an
environment variable
* do not rely on the ordering of the json entries, as it can vary from
one version to another.
* ensure variables are always initialized (even in case of exception)
* add some debug logging on errors in nvidia-smi parsing
* store status file last modification time on NodeChunk
* ChunksMonitor: don't stop the underlying thread when changing chunks, only modify the list of monitored files + use a mutex for thread-safety
* range 'blockSize' is now the complete block size (equal for all iterations)
* command lines nodes can use this complete block size to compute the iteration number on software side; delegate range cropping for last iteration to software.
* 'effectiveBlockSize' is still accessible through 'rangeEffectiveBlockSize' parameter
[flake8](http://flake8.pycqa.org) testing of https://github.com/alicevision/meshroom on Python 3.7.1
$ __flake8 . --count --select=E9,F63,F72,F82 --show-source --statistics__
```
./meshroom/core/node.py:461:34: F632 use ==/!= to compare str, bytes, and int literals
if v is not None and v is not '':
^
./meshroom/core/node.py:480:34: F632 use ==/!= to compare str, bytes, and int literals
if v is not None and v is not '':
^
2 F632 use ==/!= to compare str, bytes, and int literals
2
```
* add 'matchDescription' method on desc.Attribute.
* desc.ListAttribute/desc.GroupAttribute: 'matchDescription' ensure that value perfectly match element/group description. Enable recursive checking for child attributes.
* nodeFactory: detect DescriptionConflicts in pre-process pass by checking that serialized node's attributes perfectly match their descriptions
* CompatibilityNode.attributeDescFromNameAttribute: consider link expressions as valid values
* test_compatibility: more complete description conflicts unit testing
* required for PySide2 > 5.11.1 (and compatible with 5.11.1)
* AttributeItemDelegate: test for list length to determine whether to create a slider component (if range is set to None on Python side, it will be an empty list on the QML/JS side)
* add Node.globalStatus property: indicates the status of a Node based on the status of its own NodeChunks
* remove obsolete 'statusNames' and 'getStatus' methods