class_docstr: Locator for use with the ExpatParser class.
  
  This uses a weak reference to the parser object to avoid creating
  a circular reference between the parser and the content handler.
class_docstr_tok: ["Locator","for","use","with","the","ExpatParser","class",".","This","uses","a","weak","reference","to","the","parser","object","to","avoid","creating","a","circular","reference","between","the","parser","and","the","content","handler","."]
code: def getPublicId(self):
      parser = self._ref
      if parser is None:
          return None
      return parser._source.getPublicId()
  
imports: from xml.sax._exceptions import *
  from xml.sax.handler import feature_validation, feature_namespaces
  from xml.sax.handler import feature_namespace_prefixes
  from xml.sax.handler import feature_external_ges, feature_external_pes
  from xml.sax.handler import feature_string_interning
  from xml.sax.handler import property_xml_string, property_interning_dict
  from xml.sax import xmlreader, saxutils, handler
label_desc: Use image node_id 4 for calling the ExpatLocator obj's underlying member method code with example usage: obj.getPublicId() and returns: parser, None