Package rdkit :: Package VLib :: Module Filter :: Class FilterNode
[hide private]
[frames] | no frames]

Class FilterNode

source code

   object --+    
            |    
Node.VLibNode --+
                |
               FilterNode
Known Subclasses:

base class for nodes which filter their input

Assumptions:

  - filter function takes a number of arguments equal to the
    number of inputs we have.  It returns a bool

  - inputs (parents) can be stepped through in lockstep

  - we return a tuple if there's more than one input

Usage Example:
  >>> from rdkit.VLib.Supply import SupplyNode
  >>> def func(a,b):
  ...   return a+b < 5
  >>> filt = FilterNode(func=func)
  >>> suppl1 = SupplyNode(contents=[1,2,3,3])
  >>> suppl2 = SupplyNode(contents=[1,2,3,1])
  >>> filt.AddParent(suppl1)
  >>> filt.AddParent(suppl2)
  >>> v = [x for x in filt]
  >>> v
  [(1, 1), (2, 2), (3, 1)]
  >>> filt.reset()
  >>> v = [x for x in filt]
  >>> v
  [(1, 1), (2, 2), (3, 1)]
  >>> filt.Destroy()

  Negation is also possible:
  >>> filt = FilterNode(func=func,negate=1)
  >>> suppl1 = SupplyNode(contents=[1,2,3,3])
  >>> suppl2 = SupplyNode(contents=[1,2,3,1])
  >>> filt.AddParent(suppl1)
  >>> filt.AddParent(suppl2)
  >>> v = [x for x in filt]
  >>> v
  [(3, 3)]
  >>> filt.Destroy()

  With no function, just return the inputs:
  >>> filt = FilterNode()
  >>> suppl1 = SupplyNode(contents=[1,2,3,3])
  >>> filt.AddParent(suppl1)
  >>> v = [x for x in filt]
  >>> v
  [1, 2, 3, 3]
  >>> filt.Destroy()

Instance Methods [hide private]
 
__init__(self, func=None, negate=0, **kwargs)
x.__init__(...) initializes x; see help(type(x)) for signature
source code
 
SetNegate(self, state) source code
 
Negate(self) source code
 
next(self)
part of the iterator interface
source code
 
__next__(self)
part of the iterator interface
source code

Inherited from Node.VLibNode: AddChild, AddParent, Destroy, GetChildren, GetParents, RemoveChild, RemoveParent, __iter__, reset

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, func=None, negate=0, **kwargs)
(Constructor)

source code 
x.__init__(...) initializes x; see help(type(x)) for signature

Overrides: object.__init__
(inherited documentation)

next(self)

source code 
part of the iterator interface

raises StopIteration on failure

Overrides: Node.VLibNode.next
(inherited documentation)

__next__(self)

source code 
part of the iterator interface

raises StopIteration on failure

Overrides: Node.VLibNode.next
(inherited documentation)