Commit graph

47 commits

Author SHA1 Message Date
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
Yann Lanthony
0ab7d45607
[desc] allow List/GroupAttribute to be marked as advanced parameters 2019-03-26 12:09:16 +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
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
Grégoire De Lillo
312e21c03a [core] BoolParam add int cast to handle string values ('0', '1') 2018-12-07 11:25:25 +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
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
b6cbb0cc63 [desc] fix default values for List/GroupAttribute 2018-07-19 13:50:45 +02:00
Yann Lanthony
346277629a [nodes] use 'desc.Node.internalFolder' in outputs values
* avoid duplicating the same string everywhere
* don't override 'internalFolder' with the same value default value in subclasses
2018-07-19 13:50:45 +02:00
Yann Lanthony
e2c5a916b5 [core] kill process tree when aborting computation
fix defunct child processes
2018-05-28 16:25:00 +02:00
Fabien Castan
d83022714f [core] add pyCompatibility module
For python 2 / 3 compatibility
2018-05-21 17:12:22 +02:00
Yann Lanthony
8466264cf0
Merge pull request #106 from alicevision/dev_retrocompatibility
Retrocompatibility V1
2018-04-16 18:39:32 +02:00
Yann Lanthony
768905d9e9 [nodes] aliceVision: remove '__version__' used by rez 2018-04-13 22:43:00 +02:00
Yann Lanthony
f401ca7c8b [core] fix and use 'validateValue' for ListAttribute and GroupAttribute 2018-04-13 21:51:13 +02:00
Yann Lanthony
12d62fe46b [core] fix ChoiceParam.validateValue
return value(s) converted to the expected type
2018-04-04 19:24:41 +02:00
Yann Lanthony
9522ea7092 [core] use string formatting to print command info 2018-02-26 12:23:08 +01:00
Yann Lanthony
bd773c50b7 [desc] add MultiDynamicNodeSize for multi attributes-dependent Node size
* add documentation
* remove redundant parentheses
2018-01-10 11:33:24 +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
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
1a6febb02e [core] catch psutil.NoSuchProcess exception when trying to stop process 2017-11-28 22:36:35 +01:00
Fabien Castan
286012d55f [core] fix rez disabling if already in env and check that the package versions match
* "upper" was missing to check is the variable is in the environment
* check if the versions match
2017-11-23 20:06:05 +01:00
Fabien Castan
9d99cba772 [core] set command line to status file before launching the command 2017-11-22 15:13:28 +01:00
Yann Lanthony
e8c579c942 [core] parallelization: introduce the notion of node 'size'
* node size is an estimation of the number of element to process on a given node, that may be used for parallelization.
* replace the explicit reference to an attribute on a node (Parallelization.inputListParamName)
* size can be:
  * dynamic: depends on the size of the node connected to a specific Attribute
  * static
2017-11-17 18:46:21 +01:00
Yann Lanthony
3fae2fbc57 [desc] convert IntParams inner value to long to avoid OverflowError
when storing unsigned int, shiboken will overflow when retrieving those values as int
2017-11-14 16:52:03 +01:00
Yann Lanthony
705b4a42a7 [desc] fix base Node default cache folder
was missing 'cache' key
2017-11-14 10:06:29 +01:00
Yann Lanthony
bf747f69d6 Merge remote-tracking branch 'origin/develop' into dev_memoryManagement 2017-11-10 11:43:20 +01:00
Fabien Castan
848229778e [core] desc: use explicit message in validateValue exceptions 2017-11-10 11:37:59 +01:00
Yann Lanthony
d6d97af892 [desc] expose Attribute desc type + group/elementDesc as properties 2017-11-09 09:32:03 +01:00
Yann Lanthony
80cad9386a [core] handle unsatisfied node parallelization requirements
* catch error in case the required attribute is not found in preceding nodes
* set an empty list of chunks when this happens
* avoid uncatched exceptions in the middle of an update
2017-11-08 18:41:34 +01:00
Yann Lanthony
ccaac43b34 [desc] Choice: cast input value to expected type when validating value 2017-11-08 18:20:05 +01:00
Yann Lanthony
8539c2817b [desc] File: validateValue returns empty string when input value is empty 2017-11-08 18:18:59 +01:00
Yann Lanthony
9860828c67 [core] fix Graph.stopExecution
iterate over and terminate running chunks
2017-11-08 18:12:03 +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
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
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
e79a5cceb5 [core] retrieve all children uids on List/GroupAttributes descriptors 2017-10-31 12:10:16 +01:00
Yann Lanthony
a0cdc65143 [core] add isInput property in Attribute desc 2017-10-30 16:21:51 +01:00
Fabien Castan
0b0ef01997 [core] add package and package version notion 2017-10-26 18:02:28 +02:00
Fabien Castan
c38c2d3407 Add the notion of cpu, gpu, ram ressources requirements 2017-10-26 14:25:11 +02:00
Yann Lanthony
d22c2f7f8e [desc] Introducing ListAttribute and GroupAttribute 2017-10-23 19:55:32 +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
Fabien Castan
76fad411a4 [core] support for non-exclusive choice params 2017-10-19 12:26:31 +02:00
Fabien Castan
287c0f13ce [core] split Param into specific types and update nodes accordingly 2017-10-16 12:23:59 +02:00
Yann Lanthony
e893a3dfc6 rename package 'processGraph' to 'core' 2017-10-09 12:16:20 +02:00
Renamed from meshroom/processGraph/desc.py (Browse further)