Yann Lanthony
2cd724f957
[graph] ListAttribute: replace '__getitem__ by 'at'
...
__getitem__ is spuriously called when the object is used inside a Qt model and exposed to QML, leading to unexpected behaviors
2018-06-18 14:43:18 +02:00
Fabien Castan
d83022714f
[core] add pyCompatibility module
...
For python 2 / 3 compatibility
2018-05-21 17:12:22 +02:00
Fabien Castan
fb549ff3df
[python] use items instead of iteritems for python2/3 compatibility
2018-05-21 16:13:43 +02:00
Yann Lanthony
0adc4d8cc6
[core] add low-level retro-compatibility for attribute changes
...
First version of retrocompatibility, allowing to load files referencing removed or type-incompatible attributes.
* add node_factory to centralize node instantiation
* discard invalid attributes (i.e. not part of the node description anymore or with incompatible value type) when loading a file
* raise on unknown nodes
* add 'core.exception' module to declare Meshroom's exception types
2018-04-13 22:10:13 +02:00
Yann Lanthony
f401ca7c8b
[core] fix and use 'validateValue' for ListAttribute and GroupAttribute
2018-04-13 21:51:13 +02:00
Yann Lanthony
8ed0d0a7a2
[graph] add 'asLinkExpr' method
2018-03-21 15:53:34 +01:00
Yann Lanthony
995c18961b
[graph] init chunks upon node creation
2018-03-21 15:53:34 +01:00
Yann Lanthony
39abaf657a
[graph] add 'isLink' helper method
...
evaluates if the given value matches the link expression pattern
2018-02-12 17:58:47 +01:00
Yann Lanthony
9aca41be27
[graph] fix command line invalidation for "no-uid" attributes
...
mark node dirty even if no uid is impacted by the attribute change, since updateInternals must be called to update the command line.
2018-02-08 19:11:47 +01:00
Yann Lanthony
25992286d0
[ui] add partial graph submission up to a certain node
2018-02-07 14:35:50 +01:00
Yann Lanthony
2b76266fe7
[graph] GroupAttribute: emit valueChanged when children values change
...
make sure 'isDefault' property is re-evaluated when a child value changes
2018-02-05 18:22:56 +01:00
Yann Lanthony
75f33bdba0
[graph] add Attribute.defaultValue() method
2018-02-05 18:21:25 +01:00
Yann Lanthony
c1e9675fee
[graph] expose Attribute.isDefault as a property
2018-02-05 15:10:36 +01:00
Yann Lanthony
1f223ccc54
[graph] limit scope of graph update to outdated nodes
...
Don't update every nodes in the graph on each modification. Instead, use dfs visit to find nodes impacted by a change (of value or of topology) and limit the update to those nodes.
2018-01-26 13:02:31 +01:00
Yann Lanthony
b67fae013b
[graph] check if node belongs to a graph in Attribute.isLink property
2018-01-26 12:47:09 +01:00
Yann Lanthony
273cfd9f0e
[ui] handle multiple CameraInit nodes in a Reconstruction
...
* [ui] ImageGallery: add control to navigate image groups
* [graph] expose Node.attribute as a Slot
2018-01-15 14:33:27 +01:00
Yann Lanthony
1f0ed1f2c9
[graph] add minDepth property on nodes
2018-01-12 13:59:09 +01:00
Yann Lanthony
530af4d905
[graph] sort nodes by index when loading graph file
2018-01-12 13:59:09 +01:00
Yann Lanthony
1bc6168814
[graph] add helper methods to get nodes by type and sort them by name
2018-01-12 13:59:08 +01:00
Fabien Castan
7561b1e8c7
Merge pull request #82 from alicevision/dev_perf_graph
...
Improve graph performance
2018-01-08 21:51:48 +01:00
Yann Lanthony
516f909db4
[graph] add nodesFromNode method based on reverse dfs visit
...
Get the whole node chain from a start node to the graph leaves following graph edges
2018-01-08 13:08:55 +01:00
Yann Lanthony
924dbc8d32
[graph] improve formatting + remove redundant parentheses
2018-01-05 19:20:57 +01:00
Yann Lanthony
2d30a65252
[graph] improve Visitor class docstring
2018-01-05 19:19:38 +01:00
Yann Lanthony
614ef3a5d1
[graph] improve Node constructor arguments naming
2018-01-05 19:18:40 +01:00
Yann Lanthony
c3eda1e629
[graph] allow reverse dfs visit
...
# Default direction: from start node to root
# Reverse direction: from start node to leaves
2018-01-05 19:01:28 +01:00
Yann Lanthony
b3ab554bc9
[graph] compute and store nodes depths on graph topology change
2018-01-05 19:01:27 +01:00
Fabien Castan
8e1452d5bc
[core] add quotes on strings
...
to deal with space characters on command line
2018-01-05 16:59:31 +01:00
Fabien Castan
76ec5a1913
Merge pull request #78 from alicevision/dev_ui_nodelogs
...
Add NodeLog Component that displays logs/statistics/status files of a Node
2018-01-03 21:19:41 +01:00
Yann Lanthony
81cb2cca7a
[graph] NodeChunks: notify changes in log files paths
...
* make log, statistics and status file properties notifiyable and trigger notify signal when node's internal folder changes
* only emit Node.internalFolderChanged when it actually changed
2018-01-03 12:10:53 +01:00
Fabien Castan
ad84d20eb5
[core] ListAttribute and GroupAttribute can now be exported on command line
...
* ListAttribute, GroupAttribute: can now be exported on command line
with customizable join character.
* ChoiceParam with non exclusive values are exported on command line as
before but using the new getValueStr()
2018-01-02 14:43:29 +01:00
Yann Lanthony
49c3491534
[graph] expose NodeChunks log files as properties
2017-12-28 21:26:26 +01:00
Yann Lanthony
d2417e4ac6
[core] add optional 'name' argument to addNewNode method
...
allow to create a new node with a target name, that will get prefixed if not unique
2017-12-19 14:59:12 +01:00
Yann Lanthony
737f292787
[core] update internals of nodes created by addNewNode method
...
this ensures internal cache folder is correctly initialized
2017-12-18 19:39:58 +01:00
Yann Lanthony
5c179cce6e
[ui] GraphEditor: add action to clear node internal data
2017-12-11 15:13:56 +01:00
Fabien Castan
1399f42723
[core] fix elapsedTime default value
2017-12-04 21:54:48 +01:00
Yann Lanthony
776a9a00af
[graph] update Nodes status when cache directory changes
2017-12-04 11:06:25 +01:00
Yann Lanthony
16db901d86
[core] NodeChunks as a ListModel + [ui] DFS sorted nodes proxy model
...
* core: NodeChunks are now stored in a ListModel inside Node
* ui: introduce SortedModelByReference
* ui: UIGraph exposes a proxy model of its graph's nodes sorted as visited by DFS (instead of another model of chunks)
* ui: added NodeChunks Component
2017-11-28 21:43:15 +01:00
Yann Lanthony
eb3432eb58
[graph] removeNode: call removeEdge and trigger graph update
...
* call removeEdge instead of removing the edge in the model. This allows to trigger signals at the Attribute level (like isLinkChanged)
* trigger graph update after node removal
2017-11-28 21:29:37 +01:00
Yann Lanthony
e8c8a9f64a
[graph] add Node.clearSubmitterChunks method
2017-11-28 15:07:49 +01:00
Yann Lanthony
5b1b5a1b32
[graph] add 'updated' signal
2017-11-24 16:31:12 +01:00
Yann Lanthony
d493d0e7e2
[graph] add utility methods to retrieve chunks
2017-11-24 16:30:13 +01:00
Yann Lanthony
a60fe3c601
[graph] emit statusChanged after saving the status file
2017-11-24 16:24:23 +01:00
Yann Lanthony
09390ca52c
[graph] add notion of filepath in core.Graph
...
* Graph stores its filepath when saved/loaded
* trigger updateInternals when cache directory change to update Nodes outputs
2017-11-24 16:21:43 +01:00
Yann Lanthony
d4be998099
[graph] retrieve execMode as Enum from status file
2017-11-24 11:41:29 +01:00
Fabien Castan
c488d73551
[core] split status and execMode (LOCAL/EXTERN)
2017-11-23 20:58:52 +01:00
Fabien Castan
1cd4034784
[core] status: add packageName, packageVersion, hostname, sessionUid
2017-11-23 20:07:06 +01:00
Fabien Castan
c677243f90
[core] fix status check: should be done on chunk level (and not on node level)
2017-11-23 16:45:02 +01:00
Fabien Castan
50a4330b10
[core] fix upgrade status of chunks
2017-11-23 16:43:12 +01:00
Fabien Castan
c57d7ed37e
[core] add start/end datetime and elapsed time in status file
2017-11-22 15:17:39 +01:00
Fabien Castan
07351c911a
[core] do not change status on chunks with SUCCESS status
...
If the node is only partially computed, do not change the status of
chunks with SUCCESS status.
2017-11-22 15:16:57 +01:00