class_docstr: base class for Collector and Item the test collection tree.
  Collector subclasses have children, Items are terminal nodes.
code: def __init__(
      self,
      name,
      parent=None,
      config=None,
      session=None,
      fspath=None,
      nodeid=None,
  ):
      #: a unique name within the scope of the parent node
      self.name = name
  
      #: the parent collector node.
      self.parent = parent
  
      #: the pytest config object
      self.config = config or parent.config
  
      #: the session this node is part of
      self.session = session or parent.session
  
      #: filesystem path where this node was collected from (can be None)
      self.fspath = fspath or getattr(parent, "fspath", None)
  
      #: keywords/markers collected from all scopes
      self.keywords = NodeKeywords(self)
  
      #: the marker objects belonging to this node
      self.own_markers = []
  
      #: allow adding of extra keywords to use for matching
      self.extra_keyword_matches = set()
  
      # used for storing artificial fixturedefs for direct parametrization
      self._name2pseudofixturedef = {}
  
      if nodeid is not None:
          assert "::()" not in nodeid
          self._nodeid = nodeid
      else:
          self._nodeid = self.parent.nodeid
          if self.name != "()":
              self._nodeid += "::" + self.name
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import warnings
  import py
  import six
  import _pytest._code
  from _pytest.compat import getfslineno
  from _pytest.mark.structures import NodeKeywords
  from _pytest.outcomes import fail
label_desc: Use image node_id 1 to create a new Node object from inherited base classes: object with example: obj = Node(name, parent, config, session, fspath, nodeid)