code: def get_data_node(self, path: DataPath) -> Optional[DataNode]:
          
          addr = self.schema_data.path2route(path)
          node = self.schema
          for p in addr:
              node = node.get_data_child(*p)
              if node is None:
                  return None
          return node
docs: Return the data node addressed by a data path.
  
          Args:
              path: Data path.
  
          Returns:
              Data node if found in the schema, or ``None``.
  
          Raises:
              InvalidSchemaPath: If the schema path is invalid.