docstr: Create a node
  
  ### Parameters
  
  - **children**: One or more sub-conditions. These can be additional
      `intersect`, `disjunct`, `union`, `optional`, or any other `Node`
      type.
  
      The semantics of multiple conditions are dependent on the type of
      query. For an `intersection` node, this amounts to a logical AND,
      for a `union` node, this amounts to a logical `OR`.
  
  - **kwparams**: key-value parameters. Each key is the name of a field,
      and the value should be a field value. This can be one of the
      following:
  
      - Simple string (for text field matches)
      - value returned by one of the helper functions
      - list of either a string or a value
  
  
  ### Examples
  
  Field `num` should be between 1 and 10
  ```
  intersect(num=between(1, 10)
  ```
  
  Name can either be `bob` or `john`
  
  ```
  union(name=("bob", "john"))
  ```
  
  Don't select countries in Israel, Japan, or US
  
  ```
  disjunct_union(country=("il", "jp", "us"))
  ```
docstr_tok: ["Create","a","node","#","#","#","Parameters","-","*","*","children","*","*",":","One","or","more","sub-conditions",".","These","can","be","additional","`","intersect","`",",","`","disjunct","`",",","`","union","`",",","`","optional","`",",","or","any","other","`","Node","`","type",".","The","semantics","of","multiple","conditions","are","dependent","on","the","type","of","query",".","For","an","`","intersection","`","node",",","this","amounts","to","a","logical","AND",",","for","a","`","union","`","node",",","this","amounts","to","a","logical","`","OR","`",".","-","*","*","kwparams","*","*",":","key-value","parameters",".","Each","key","is","the","name","of","a","field",",","and","the","value","should","be","a","field","value",".","This","can","be","one","of","the","following",":","-","Simple","string","(","for","text","field","matches",")","-","value","returned","by","one","of","the","helper","functions","-","list","of","either","a","string","or","a","value","#","#","#","Examples","Field","`","num","`","should","be","between","1","and","10","``","`","intersect","(","num=between","(","1",",","10",")","``","`","Name","can","either","be","`","bob","`","or","`","john","`","``","`","union","(","name=","(","``","bob","''",",","``","john","''",")",")","``","`","Do","n't","select","countries","in","Israel",",","Japan",",","or","US","``","`","disjunct_union","(","country=","(","``","il","''",",","``","jp","''",",","``","us","''",")",")","``","`"]
code: def __init__(self, *children, **kwparams):
      """
      Create a node
  
      ### Parameters
  
      - **children**: One or more sub-conditions. These can be additional
          `intersect`, `disjunct`, `union`, `optional`, or any other `Node`
          type.
  
          The semantics of multiple conditions are dependent on the type of
          query. For an `intersection` node, this amounts to a logical AND,
          for a `union` node, this amounts to a logical `OR`.
  
      - **kwparams**: key-value parameters. Each key is the name of a field,
          and the value should be a field value. This can be one of the
          following:
  
          - Simple string (for text field matches)
          - value returned by one of the helper functions
          - list of either a string or a value
  
  
      ### Examples
  
      Field `num` should be between 1 and 10
      ```
      intersect(num=between(1, 10)
      ```
  
      Name can either be `bob` or `john`
  
      ```
      union(name=("bob", "john"))
      ```
  
      Don't select countries in Israel, Japan, or US
  
      ```
      disjunct_union(country=("il", "jp", "us"))
      ```
      """
  
      self.params = []
  
      kvparams = {}
      for k, v in kwparams.items():
          curvals = kvparams.setdefault(k, [])
          if isinstance(v, (str, int, float)):
              curvals.append(Value.make_value(v))
          elif isinstance(v, Value):
              curvals.append(v)
          else:
              curvals.extend(Value.make_value(subv) for subv in v)
  
      self.params += [Node.to_node(p) for p in children]
  
      for k, v in kvparams.items():
          self.params.extend(self.join_fields(k, v))
  
label_desc: Use image node_id 1 to create a new Node object  with example: obj = Node()