Yann Lanthony
f6a42cb86e
[ui] Nodes status monitoring simplification
...
* 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
2019-07-24 18:02:29 +02:00
Fabien Castan
cc476d40ed
Merge pull request #464 from alicevision/dev_texturing_multiband
...
Multi-band blending texturing
2019-06-21 00:14:46 +02:00
Fabien Castan
889f7bc484
Merge pull request #454 from alicevision/dev_rangeBlockSize
...
Make range complete block size accessible to command line nodes
2019-06-07 12:25:02 +02:00
cclauss
09b28bbc2a
if v:
2019-05-14 12:30:37 +02:00
Clara
9f928e1ea0
[mesh] Texturing: set parameters for multi-band blending
...
Use only 3 parameters : useScore, multiBandDownscale, multiBandNbContrib
2019-05-13 17:04:26 +02:00
Yann Lanthony
275c4133fe
[core] make range complete block size accessible to command line nodes
...
* 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
2019-04-26 10:49:47 +02:00
cclauss
d0c5a5ffb5
Avoid issue with use ==/!= to compare str, bytes, and int literals
...
[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
```
2019-04-18 10:30:57 +02: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
0ab7d45607
[desc] allow List/GroupAttribute to be marked as advanced parameters
2019-03-26 12:09:16 +01:00
Yann Lanthony
1a22fc8ae8
[core] add GroupAttribute.childAttribute method
...
* easier access to child attributes
* callable from QML
2019-03-01 17:22:57 +01:00
Yann Lanthony
2a0b695ea7
[core] more thorough compatibility issues detection
...
* 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
2019-02-01 16:03:21 +01:00
Yann Lanthony
905ed48cf9
[core] fix flake8 error
...
remove type annotations
2019-01-30 09:36:02 +01:00
Yann Lanthony
026cd36ff4
[core.graph] update graph after load
...
Ensure graph internal data is updated after loading.
2019-01-29 16:04:39 +01:00
Yann Lanthony
34ca607261
[ui] GraphEditor : add "Clear Pending Status" tool at Graph level
...
* allow to clear status of all submitted nodes in the graph
* unify wording
2019-01-07 10:47:25 +01:00
Yann Lanthony
b09068dc68
[ui] Node: add "Clear Data From Here" menu entry + confirmation dialog
2019-01-07 10:47:25 +01:00
Yann Lanthony
6ac4a9d712
[desc][qt] use QVariantList for list-type properties
...
* 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)
2019-01-04 17:30:38 +01:00
Yann Lanthony
8ada834447
[core] Attribute: new 'advanced' notion on parameters
2018-12-20 11:17:23 +01:00
Yann Lanthony
bc9abe3b07
Merge remote-tracking branch 'origin/develop' into dev_viewer3D_multi
2018-12-10 15:26:19 +01:00
Grégoire De Lillo
312e21c03a
[core] BoolParam
add int cast to handle string values ('0', '1')
2018-12-07 11:25:25 +01:00
Yann Lanthony
e80bdd1161
[core] Node: introduce 'globalStatus'
...
* add Node.globalStatus property: indicates the status of a Node based on the status of its own NodeChunks
* remove obsolete 'statusNames' and 'getStatus' methods
2018-11-19 15:17:36 +01:00
Yann Lanthony
d2aba176dc
[core] Node: add 'label' property
...
high-level label for nodes, without '_' and including index if > 1
2018-11-19 15:17:36 +01:00
Yann Lanthony
3dad1e3aac
[core] Attribute: expose 'node' and 'linkParam' as properties
2018-11-19 15:17:36 +01:00
Yann Lanthony
400835d8f8
[core] Attribute: expose 'fullName' as property
2018-11-19 15:17:36 +01:00
cclauss
ca658ed745
Use feature detection instead of version detection
...
Python porting best practice is to Use feature detection instead of version detection
* https://docs.python.org/3/howto/pyporting.html#use-feature-detection-instead-of-version-detection
2018-08-11 08:29:44 +02:00
Yann Lanthony
fa631d8e7a
[core] core: use pyCompatibility basestring instead of str
2018-07-28 13:09:16 +02:00
Yann Lanthony
41ea5a5423
[core][graph] store duplication result in an OrderedDict
...
allows to keep the order in which duplicated nodes were created
2018-07-27 19:05:25 +02:00
Yann Lanthony
830173047c
[ui][commands] Duplicate/UpgradeNode: return created Node instances
2018-07-26 22:43:48 +02:00
Yann Lanthony
62dbf7df95
[core][io] return file features as tuple
2018-07-26 18:01:11 +02:00
Yann Lanthony
e2155ba962
[core][io] store nodes position in graph file
...
* increment file minor version (no incompatibility)
* nodeFactory: reload file position if available
2018-07-26 18:01:11 +02:00
Yann Lanthony
dfb0934ef4
[core] add node position property
...
Nodes can now be placed at a certain position
* add Position namedtuple
* expose 'position', 'x' and 'y' properties on BaseNode
2018-07-26 18:01:10 +02:00
Yann Lanthony
5843c36435
[core][io] add io version 'Features' mechanism
...
* centralize available features based on file version in 'IO' class
* add IO.Features enum
2018-07-26 18:01:10 +02:00
Yann Lanthony
ec08de812e
[core][io] move file keys to an inner 'Keys' class
2018-07-26 17:45:03 +02:00
Fabien Castan
bb0155ba42
Merge pull request #150 from alicevision/dev_versionCompatibility
...
Introduce version compatibility handling
2018-07-26 12:50:15 +02:00
Yann Lanthony
93dd055f72
[clean] fix variable names and typos
...
* node_factory & attribute_factory to camelCase
* fix depths variable in updateNodesTopologicalData
2018-07-26 12:11:43 +02:00
Yann Lanthony
e0ad807d84
[core] add Version class to help manipulate version names
2018-07-25 11:22:31 +02:00
Yann Lanthony
20be401110
[core] CompatibilityNode: use original serialized inputs if not in graph
...
renamed 'actualInputs' property to 'inputs', which returns the serialized inputs depending on whether the node belongs to a graph or not
2018-07-24 17:28:14 +02:00
Yann Lanthony
6bb70895f3
[core] remove ABCMeta metaclass for Python 2 compatibility
...
mixing ABCMeta and QObject inheritance is problematic when using Python 2
2018-07-24 15:06:15 +02:00
Fabien Castan
9e06fd9661
[core] generic functions to create "writing" filepath and rename the file
...
* only try to remove the file on windows
* only except for specific exception
* use the same functions to create the statistics file
2018-07-24 14:32:24 +02:00
Fabien Castan
c6531bcc7b
[core] multiple trials to replace the status file to avoid file conflicts on windows
...
On Windows, attempting to remove a file that is in use causes an exception to be raised. So we may need multiple trials.
2018-07-21 14:50:07 +02:00
Yann Lanthony
dd3d9cd54b
[core][ui] add upgradeAllNodes methods
...
+ check if node is upgradable in UpgradeNodeCommand
2018-07-20 17:55:30 +02:00
Yann Lanthony
8679fd8bf7
[core] maintain a model with CompatibilityNodes on topology change
2018-07-20 17:52:30 +02:00
Yann Lanthony
3417f58335
[graph] add GraphModification inside upgradeNode method
2018-07-20 15:35:55 +02:00
Yann Lanthony
f5820b3eb1
[graph] expose fileReleaseVersion as property
...
+ clear header in Graph.clear method
2018-07-20 15:30:27 +02:00
Yann Lanthony
ae716602ab
[core] update nodes topological data after nodes status update
...
evaluate nodes computability requires up-to-date status
2018-07-19 16:08:00 +02:00
Yann Lanthony
5897dc13b6
[core] verify chunk hosts a subprocess before killing it
...
a chunk can be marked as "RUNNING" without hosting a subprocess, if a node is duplicated in the graph
2018-07-19 13:50:45 +02:00
Yann Lanthony
f5d11a8a7a
[node] CompatibilityNode: expose additional properties
...
* add 'issueDetails' to get a comprehensive text about the issue
2018-07-19 13:50:45 +02:00
Yann Lanthony
30cd8001fd
[core][graph] update nodes computability on topology change
...
CompatibilityNodes introduce a new notion of computability per node.
An uncomputed (and therefore uncomputable) CompatibilityNode blocks the computation of all its successor.
* update nodes computability on topology change (in addition to min/max depth)
* evaluate leaves computability to determine if the whole graph can be processed
2018-07-19 13:50:45 +02:00
Yann Lanthony
89dd55f43b
[core] dfsToProcess: stop branch visit when discovering a computed node
2018-07-19 13:50:45 +02:00
Yann Lanthony
ab4e82aa88
[core] add GraphVisitMessage exceptions mecanism
...
allow to stop branch or graph visit by throwing specific exceptions in visitor callbacks
2018-07-19 13:50:45 +02:00