def check(self, element): object_id = element.get("objectId") if element.tag == "Candidate": ballot_name_element = element.find("BallotName") if ballot_name_element is None: return ballot_name = ballot_name_element.find("Text") if ballot_name is None: return name = ballot_name.text if name and name.isupper(): raise base.ElectionWarning( "Line %d. Candidate %s has name in all upper case letters." % (element.sourceline, object_id)) elif element.tag == "Contest": name_element = element.find("Name") if name_element is None: return name = name_element.text if name and name.isupper(): raise base.ElectionWarning( "Line %d. Contest %s has name in all upper case letters." % (element.sourceline, object_id)) else: full_name_element = element.find("FullName") if full_name_element is None: return full_name = full_name_element.find("Text") if full_name is None: return name = full_name.text if name and name.isupper(): raise base.ElectionWarning( "Line %d. Person %s has name in all upper case letters." % (element.sourceline, object_id))
def check(self, element): if element == self.previous: return self.previous = element if ((element.text is None or element.text.strip() == "") and not len(element)): raise base.ElectionWarning( "Line %d. %s optional element included although it " "is empty" % (element.sourceline, element.tag))
def check(self, element): contest_name = element.find("Name") if contest_name is not None and contest_name.text is not None: c_name = contest_name.text.replace(" ", "").lower() for p_text in self.party_text: if p_text in c_name: raise base.ElectionWarning( "Line %d. Name of contest - %s, " "contains text that implies it is a partisan primary " "but is not marked up as such." % ( element.sourceline, contest_name.text))
def check(self, element): gpunit_id = element.get("objectId") if not gpunit_id: return gpunit_type = element.find("Type") if gpunit_type is not None and gpunit_type.text in self.districts: for extern_id in element.iter("ExternalIdentifier"): id_type = extern_id.find("Type") if id_type is not None and id_type.text == "ocd-id": value = extern_id.find("Value") if value is None or not hasattr(value, "text"): continue if value.text not in self.ocds: raise base.ElectionWarning( "The OCD ID %s in GpUnit %s defined on line %d is " "not valid" % ( value.text, gpunit_id, value.sourceline))
def check(self, element): id_type = element.find("Type") if id_type is None: return id_type_text = id_type.text if id_type_text != "ocd-id": return id_value = element.find("Value") if id_value is None: return ocdid = id_value.text if ocdid is None or not ocdid.strip(): return if not ocdid.islower(): raise base.ElectionWarning( "Line %d. OCD-ID %s is not in all lower case letters. " "Valid OCD-IDs should be all lowercase" % (element.sourceline, ocdid))
def check(self, element): party_id = element.find("PartyId") if party_id is None or not party_id.text: raise base.ElectionWarning("Line %d: Candidate %s is missing party data" % ( element.sourceline, element.get("objectId")))
def check(self, element): if element.text is not None and element.text.strip() == "": raise base.ElectionWarning( "Line %d. %s is empty" % ( element.sourceline, element.tag))