class_docstr: This annotator base class hosts a lightweight server that accepts
  annotation requests from CoreNLP.
  Each annotator simply defines 3 functions: requires, provides and annotate.
  
  This class takes care of defining appropriate endpoints to interface
  with CoreNLP.
docstr: The set of annotations guaranteed to be provided when we are done.
  NOTE: that these annotations are either fully qualified Java
  class names or refer to nested classes of
  edu.stanford.nlp.ling.CoreAnnotations (as is the case below).
docstr_tok: ["The","set","of","annotations","guaranteed","to","be","provided","when","we","are","done",".","NOTE",":","that","these","annotations","are","either","fully","qualified","Java","class","names","or","refer","to","nested","classes","of","edu.stanford.nlp.ling.CoreAnnotations","(","as","is","the","case","below",")","."]
code: def provides(self):
      """
      The set of annotations guaranteed to be provided when we are done.
      NOTE: that these annotations are either fully qualified Java
      class names or refer to nested classes of
      edu.stanford.nlp.ling.CoreAnnotations (as is the case below).
      """
      raise NotImplementedError()
  
file_path: stanza/stanza/server/annotator.py
imports: import io
  from multiprocessing import Process
  from http.server import BaseHTTPRequestHandler, HTTPServer
  from http import client
  from stanza.protobuf import Document, parseFromDelimitedString, writeToDelimitedString
label_desc: Use image node_id 3 for calling the Annotator obj's underlying member method code with example usage: obj.provides() without return types