Yann Lanthony
e38f112c55
[core] fix memory management
...
* parent Nodes, Edges and Attributes to their respective models
* use weakrefs for those objects to avoid cyclic references
* add 'root' property on Attribute for parenting to List/GroupAttribute (parent still exists for Qt-style parenting)
* UI: update commands to match those changes
2017-11-07 20:18:17 +01:00
Fabien Castan
1e4f8f8a61
Add chunk notion for parallelization and implement specific updateInternals in CameraInit node
...
* Add chunk notion for parallelization
* Allows Node desc to implement custom updateInternals
* CameraInit node implement a specific updateInternals to update the
input image list
* FeatureExtraction, FeatureMatching, DepthMap, DepthMapFilter:
implement parallelization
2017-11-07 15:47:14 +01:00
Fabien Castan
1472baa477
[core] Graph.update fix: return when the update is disabled
2017-11-06 20:49:07 +01:00
Fabien Castan
0847a80bdc
[core] Attribute: add isDefault and getPrimitiveValue
2017-11-06 20:46:59 +01:00
Fabien Castan
3a6473b78f
[core] Attribute: getExportValue give the expression on output attributes
...
On output attributes, we export the desc value which contains the
expression and not the locally evaluated value.
2017-11-06 20:46:26 +01:00
Fabien Castan
ee7c0d0fd5
[core] Attribute: change isLink check for _applyExpr()
2017-11-06 20:41:29 +01:00
Yann Lanthony
95471e3e1b
[graph] parent root Attributes to the Node
...
Guarantee Python ownership on objects when using Qt backend. Otherwise, the ownership could be transferred to QML when getting objects via a Slot, leading to their destruction at gargabe collection.
2017-11-02 11:12:14 +01:00
Fabien Castan
9d3f7252c1
[core] move process code into the node description
...
Now CommandLineNode contains the code to launch the command line as a
subprocess.
2017-10-31 21:28:44 +01:00
Fabien Castan
eec52e45e3
[core] implement _applyExpr for List/GroupAttributes
2017-10-31 20:55:56 +01:00
Yann Lanthony
fbebecd463
[graph] default uidIndex value for Attribute.uid method
...
This index only makes sense on ListAttributes and GroupAttributes
2017-10-31 19:50:29 +01:00
Yann Lanthony
16e8037fd7
[core] change Attributes declaration on Node description
...
Inputs and outputs Attributes are now declared in two separate lists
* no more isOutput field on Attribute description
* guarantee attributes order (was not the case in Python2 with class attributes)
* Attribute's name is now part of its description
Note: for now, input and output Attributes are still stored in a single model inside a Graph.
2017-10-31 19:47:32 +01:00
Fabien Castan
329dcba3a5
[core] add validator per attribute type
2017-10-31 16:50:31 +01:00
Fabien Castan
46f6865a25
[core] implement uid computation for ListAttributes and GroupAttributes
2017-10-31 10:46:32 +01:00
Yann Lanthony
f1fdd34b6c
[graph] Attribute: robust UIDs for list of elements as value
...
Fix variable UIDs for non-exclusive choices, which could be affected by different string encodings
2017-10-30 19:23:50 +01:00
Yann Lanthony
7e2d37c819
[graph] fix Node status update from cache
...
updateStatusFromCache reset Node's status to NONE is status file does not exist, but does not save it on disk anymore.
2017-10-30 19:18:41 +01:00
Yann Lanthony
f051148d7a
[graph] update cacheDir property on load
...
use property setter instead of changing the value internally
2017-10-30 17:08:25 +01:00
Yann Lanthony
5e4b26fa5e
[graph] automatically trigger Graph updates
...
* update graph internals / node status when:
- an input attribute is set
- edges are added/removed
* add GraphModification context manager to group graph updates
2017-10-30 16:37:09 +01:00
Yann Lanthony
a0cdc65143
[core] add isInput property in Attribute desc
2017-10-30 16:21:51 +01:00
Yann Lanthony
b22c2b5a62
[graph] minor clean
2017-10-30 11:56:29 +01:00
Yann Lanthony
454b19ed0f
[graph] dummy override of List/GroupAttribute uid methods
...
TODO: implement the real uid mechanism based on child attributes
2017-10-30 11:40:40 +01:00
Yann Lanthony
263ad6b4f5
[graph] remove uid on node, use name as unique identifier
2017-10-30 11:38:42 +01:00
Yann Lanthony
c1a0f43ee3
[graph] handle invalidation value for output attributes
...
output attributes UIDs are only based on the hash of their values without the cache folder
2017-10-30 11:35:07 +01:00
Fabien Castan
6f2ea4c8ef
[core] support killed job
...
* add KILLED status
* register atexit function to update the status of running nodes to
KILLED
2017-10-27 11:24:12 +02:00
Fabien Castan
99ec7ab386
[doc] cosmetic
2017-10-26 18:47:27 +02:00
Fabien Castan
486d1081c8
[core] if rez is in env use it for command line creation
2017-10-26 18:47:01 +02: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
Fabien Castan
e533c588dd
[core] graph: add the notion of flowEdges and minMaxDepthPerNode
...
- flowEdges: Compute a transitive reduction of the graph to provide
node-level minimal dependencies to create an execution workflow for
renderfarm.
- minMaxDepthPerNode: compute the min and max depth per node
2017-10-24 20:22:39 +02:00
Fabien Castan
5d8771f07e
[core] graph: retrieve nodes and edges at the same time
2017-10-24 20:19:24 +02:00
Yann Lanthony
61ade5bfa7
[graph] simplify methods related to Attribute values and links
2017-10-24 19:02:38 +02:00
Yann Lanthony
75ddea0329
[graph] expose Attribute's description type as a property
2017-10-23 19:55:33 +02:00
Yann Lanthony
05be8932ca
[graph] fix call to property nodeType
2017-10-23 19:55:33 +02:00
Yann Lanthony
e42e04fd9d
[graph] handle ListAttribute and GroupAttribute
2017-10-23 19:55:33 +02:00
Yann Lanthony
1e306f8408
rename Model to DictModel + augment API
...
* add "update" and "reset" methods
* core: no more default keyAttrName
* qt: if keyAttrName is empty, don't register items in internal dictionnary
2017-10-23 19:54:55 +02:00
Yann Lanthony
9c7d0c1b1c
[desc] Attribute inherits BaseObject and expose members as properties
...
* also expose graph.Attribute's desc as a property
* introduce Variant in data structure backend API
2017-10-23 15:07:09 +02:00
Yann Lanthony
473141ebed
[core] fix graph file loading
...
Only resolve attribute expressions (containing edges description) once all nodes have been created
2017-10-23 14:33:42 +02:00
Yann Lanthony
7f78fac119
[core] add Graph.attribute method
...
shortcut to get an attribute from its fullname
2017-10-19 17:45:02 +02:00
Yann Lanthony
925d2e71f6
[core] turn Node.nodeType into a property
2017-10-19 17:35:32 +02:00
Fabien Castan
48e3e4cfa1
Merge branch 'dev_processGraph' of https://github.com/alicevision/meshroom into dev_processGraph
2017-10-19 12:30:48 +02:00
Fabien Castan
76fad411a4
[core] support for non-exclusive choice params
2017-10-19 12:26:31 +02:00
Yann Lanthony
e49fdf457c
[core] reset status of submitted nodes when a node computation fails
...
* catch Exception and stop graph execution
* report error using logging.error
* misc: fix indentation issues
2017-10-17 16:53:52 +02:00
Yann Lanthony
fd0c209837
[commands] only re-create out edges when undoing RemoveNode
...
"in" edges are automatically recreated since serialized as a connection expression in Node's dict representation and resolved by addNode
2017-10-17 16:32:57 +02:00
Fabien Castan
977a6b1507
[core] fix indent
2017-10-16 19:56:58 +02:00
Fabien Castan
6e270ad6a9
Use imageMatching node in the multiview pipeline
2017-10-16 18:18:35 +02:00
Yann Lanthony
ce6925117a
[core] fix node depth computation
2017-10-16 15:30:13 +02:00
Fabien Castan
fd1b9f2cea
Merge branch 'dev_processGraph' of https://github.com/alicevision/meshroom into dev_processGraph
...
Conflicts:
meshroom/core/graph.py
2017-10-16 12:30:15 +02:00
Fabien Castan
0655d1b7d1
[bin] add toNode argument with partial name support
2017-10-16 12:24:02 +02:00
Fabien Castan
18d2e4bd39
[core] Node: add missing initialization in constructor
2017-10-16 12:24:02 +02:00
Fabien Castan
c291e0d6bf
[core] process: change output formatting and add a timer
2017-10-16 12:24:01 +02:00
Fabien Castan
3ca3a794fe
[core] graph: re-implement getDepth to return the correct value
2017-10-16 12:24:01 +02:00