Commit graph

199 commits

Author SHA1 Message Date
Fabien Castan
2f17e9aa80 Merge remote-tracking branch 'origin/develop' into dev/panoramaFisheye 2020-03-26 13:56:51 +01:00
Fabien Castan
0e606eef4e [ui] Add the notion of Node Documentation 2020-03-26 10:54:00 +01:00
Fabien Castan
4c736e8512 [core] Node.isComputed is now a property 2020-03-23 19:21:53 +01:00
Fabien Castan
9fe8d2b850
Merge pull request #783 from ChemicalXandco/sketchfab_upload_node
fix python nodes being blocked by log
2020-03-19 12:33:00 +01:00
Fabien Castan
517014faf6 [core] command line: subattributes of GroupAttribute can be used directly on command line 2020-03-11 12:14:08 +01:00
Fabien Castan
19d2f90554 [ui] ImageGallery: allow to visualize the list of HDR images created by LDRToHDR
Conflicts:
	meshroom/ui/reconstruction.py
2020-03-10 12:33:36 +01:00
Grégoire De Lillo
1f7663259a [core] compatibility : List of groups update is more flexible 2020-02-17 10:19:28 +01:00
ChemicalXandco
f75fc91436 fix python nodes being blocked by log
...when ran on command line with meshroom_photogrammetry or meshroom_compute
2020-02-07 22:47:27 +00:00
Fabien Castan
7f84097c24 [core] Option to make chunks optional 2020-02-05 12:35:59 +01:00
Fabien Castan
3edc35f013
Merge pull request #712 from ChemicalXandco/sketchfab_upload_node
Sketchfab upload node
2020-01-25 15:59:20 +01:00
Yann Lanthony
b883bd193b [core] taskManager: code cleanup 2020-01-24 18:46:32 +01:00
Yann Lanthony
991aca989b Merge develop into dev/nodesAndTaskManager 2020-01-24 14:54:08 +01:00
Yann Lanthony
a0ba44fbff
[core] desc.Node: add update/postUpdate hooks
Enable node descriptions to react before/after the invalidation of a node instance.
2019-12-13 19:26:42 +01:00
Fabien Castan
bbe40e0bc6
[ui] GraphEditor: use node label in duplicates tooltip 2019-11-29 11:34:15 +01:00
Lee Geertsen
5aea330400
Add nodes computed in renderfarm to Taksmanager on open scene 2019-11-29 11:34:10 +01:00
Lee Geertsen
01974c23ec
Make Task Manager with Nodes submitted to a render farm 2019-11-29 11:34:10 +01:00
Lee Geertsen
c00db25c23
Don't lock graph and node editor while computing nodes
Add possibilty to, while computing nodes:
add more nodes to the task manager,
edit, duplicate and remove nodes without breaking the tasks that are submitted
2019-11-29 11:34:10 +01:00
Lee Geertsen
51d6c18840
Create TaskManager with a task overview
Create a seperate class to handle the logic of computing nodes
+ An UI overview with all submitted nodes
2019-11-29 11:34:10 +01:00
ChemicalXandco
749fc154b1
more reliable way to find progress bar position in log file 2019-11-25 19:48:49 +00:00
ChemicalXandco
17ecf78064 use logger object directly
also allow progress bar to be used even while messages are added
2019-09-15 15:28:59 +01:00
ChemicalXandco
cd5beab5f4 expose verbose level on Publish node 2019-09-14 12:31:15 +01:00
ChemicalXandco
5ef33ef64c rely on standard logging object 2019-09-14 12:02:31 +01:00
ChemicalXandco
ad486e0c73 add LogManager class 2019-09-11 17:44:31 +01:00
Lee Geertsen
54ff012a04 Clear statistics when node has finished computing 2019-07-26 11:33:37 +02:00
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
cclauss
09b28bbc2a
if v: 2019-05-14 12:30:37 +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
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
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
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
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
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
52d1d1fb89 [core] node_factory: del old 'attributes' key from serialized node dict 2018-07-19 13:50:45 +02:00
Yann Lanthony
2952e11691 [core] move duplicateNode methods to core.graph
handle this low-level operation engine side

* fix ListAttribute children links duplication
* handle CompatibilityNode duplication
* move corresponding unit test in test_graph.py
* [ui] add DuplicateNodeCommand
2018-07-19 13:50:45 +02:00
Yann Lanthony
1af3a16d81 [core] CompatibilityNode: recursively build List/GroupAttribute descriptions 2018-07-19 13:50:45 +02:00
Yann Lanthony
1d309136ec [core][node] serialization: rename 'attributes' to 'inputs' 2018-07-19 13:50:45 +02:00
Yann Lanthony
33eb7f3a7f [core] introduce CompatibilityNode for improved scene compatibilities
Improve node serialization/deserialization to be able to recreate the exact same node in the graph when loading a meshroom project, even if the corresponding node's description has changed or does not exist anymore. This allows to recover already computed data on disk, without being impacted by changed uids. CompatibilityNode also provides an on-demand upgrade system to turn into a Node that meets the current node description (if possible).
 
* new abstract class BaseNode, base class for Node and CompatibiliyNode 
* Node: serialize everything needed to spawn a CompatibilityNode with precomputed outputs: inputs, uids, parallelization settings, unresolved internal folders and outputs
* node_factory: handles node deserialization and compatibility issues to create either a Node or a CompatibilityNode
* add compatibility unit tests
2018-07-19 13:50:45 +02:00
Yann Lanthony
67ac4bf2ca [core] split uids computation + cache override in updateInternals
* add _computeUids internal method + store computed uids in a dedicated dict
* cache override:
  * add optional cacheDir parameter on updateInternal method to override graph cache directory
  * _buildCmdVars always update member variable '_cmdVars' 
  * CameraInit: ensure node does not belong to a graph and use updateInternals with temp cache directory
2018-07-19 13:50:45 +02:00
Yann Lanthony
727950afef [core] take attributes name into account when computing node's uids
two different attributes with the same value must participate differently to the computed uid
2018-07-19 13:50:45 +02:00
Yann Lanthony
1f675a0e42 [core] split graph.py into separate modules
core.graph is now splitted into: 
  * graph.py
  * node.py
  * attribute.py
2018-06-26 12:19:14 +02:00