class_docstr: Base class for Project API Servers.
  
  This API server implements communication using JSON-RPC 2.0:
      https://www.jsonrpc.org/specification
  
  Suggested use of this class is to import this module or copy this file into Project Generator
  implementations, then instantiate it with server.start().
  
  This RPC server is single-threaded, blocking, and one-request-at-a-time. Don't get anxious.
class_docstr_tok: ["Base","class","for","Project","API","Servers",".","This","API","server","implements","communication","using","JSON-RPC","2.0",":","https",":","\/\/www.jsonrpc.org\/specification","Suggested","use","of","this","class","is","to","import","this","module","or","copy","this","file","into","Project","Generator","implementations",",","then","instantiate","it","with","server.start","(",")",".","This","RPC","server","is","single-threaded",",","blocking",",","and","one-request-at-a-time",".","Do","n't","get","anxious","."]
docstr: Initialize a new ProjectAPIServer.
  
  Parameters
  ----------
  read_file : BinaryIO
      A file-like object used to read binary data from the client.
  write_file : BinaryIO
      A file-like object used to write binary data to the client.
  handler : ProjectAPIHandler
      A class which extends the abstract class ProjectAPIHandler and implements the server RPC
      functions.
docstr_tok: ["Initialize","a","new","ProjectAPIServer",".","Parameters","--","--","--","--","--","read_file",":","BinaryIO","A","file-like","object","used","to","read","binary","data","from","the","client",".","write_file",":","BinaryIO","A","file-like","object","used","to","write","binary","data","to","the","client",".","handler",":","ProjectAPIHandler","A","class","which","extends","the","abstract","class","ProjectAPIHandler","and","implements","the","server","RPC","functions","."]
code: def __init__(
      self,
      read_file: typing.BinaryIO,
      write_file: typing.BinaryIO,
      handler: ProjectAPIHandler,
  ):
      """Initialize a new ProjectAPIServer.
  
      Parameters
      ----------
      read_file : BinaryIO
          A file-like object used to read binary data from the client.
      write_file : BinaryIO
          A file-like object used to write binary data to the client.
      handler : ProjectAPIHandler
          A class which extends the abstract class ProjectAPIHandler and implements the server RPC
          functions.
      """
      self._read_file = io.TextIOWrapper(
          read_file, encoding="UTF-8", errors="strict"
      )
      self._write_file = io.TextIOWrapper(
          write_file,
          encoding="UTF-8",
          errors="strict",
          write_through=True,
      )
      self._handler = handler
  
imports: import abc
  import argparse
  import base64
  import collections
  import enum
  import io
  import json
  import logging
  import os
  import pathlib
  import re
  import select
  import sys
  import time
  import traceback
  import typing
label_desc: Use image node_id 1 to create a new ProjectAPIServer object  with example: obj = ProjectAPIServer(read_file, write_file, handler)