ATLAS Offline Software
Classes | Functions | Variables
python.virtual_mixin Namespace Reference

Classes

class  DefectsDBVirtualDefectsMixin
 

Functions

def _resolve_dependencies (node, resolved=None, unresolved=None)
 

Variables

 log
 
tuple NONHEAD_MODIFICATION_MSG
 

Function Documentation

◆ _resolve_dependencies()

def python.virtual_mixin._resolve_dependencies (   node,
  resolved = None,
  unresolved = None 
)
private
Navigate the node to determine dependencies. Circular references raise an 
exception.

Shamelessly stolen algorithm from:
http://www.electricmonk.nl/log/2008/08/07/dependency-resolving-algorithm/

Definition at line 16 of file virtual_mixin.py.

16 def _resolve_dependencies(node, resolved=None, unresolved=None):
17  """
18  Navigate the node to determine dependencies. Circular references raise an
19  exception.
20 
21  Shamelessly stolen algorithm from:
22  http://www.electricmonk.nl/log/2008/08/07/dependency-resolving-algorithm/
23  """
24  if resolved is None: resolved = []
25  if unresolved is None: unresolved = []
26  unresolved.append(node)
27  for dependency in node.dependencies:
28  if dependency not in resolved:
29  if dependency in unresolved:
30  raise Exception('Circular reference detected: %s -> %s'
31  % (node.name, dependency.name))
32  _resolve_dependencies(dependency, resolved, unresolved)
33 
34  resolved.append(node)
35  unresolved.remove(node)
36  return resolved
37 
38 

Variable Documentation

◆ log

python.virtual_mixin.log

Definition at line 3 of file virtual_mixin.py.

◆ NONHEAD_MODIFICATION_MSG

tuple python.virtual_mixin.NONHEAD_MODIFICATION_MSG
Initial value:
1 = ("Operations which modify virtual defects can only "
2  "be done on the HEAD tag.")

Definition at line 13 of file virtual_mixin.py.

python.virtual_mixin._resolve_dependencies
def _resolve_dependencies(node, resolved=None, unresolved=None)
Definition: virtual_mixin.py:16