civics-cdf-validator 1.65.dev1__tar.gz → 1.65.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {civics_cdf_validator-1.65.dev1/civics_cdf_validator.egg-info → civics_cdf_validator-1.65.dev3}/PKG-INFO +1 -1
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3/civics_cdf_validator.egg-info}/PKG-INFO +1 -1
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/rules.py +4 -20
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/version.py +1 -1
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/CONTRIBUTING.md +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/LICENSE-2.0.txt +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/MANIFEST.in +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/README.md +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/__init__.py +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/base.py +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/civics_cdf_validator.egg-info/SOURCES.txt +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/civics_cdf_validator.egg-info/dependency_links.txt +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/civics_cdf_validator.egg-info/entry_points.txt +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/civics_cdf_validator.egg-info/requires.txt +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/civics_cdf_validator.egg-info/top_level.txt +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/gpunit_rules.py +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/loggers.py +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/office_utils.py +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/setup.cfg +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/setup.py +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/stats.py +0 -0
- {civics_cdf_validator-1.65.dev1 → civics_cdf_validator-1.65.dev3}/validator.py +0 -0
|
@@ -943,7 +943,7 @@ class CandidatesReferencedInRelatedContests(base.BaseRule):
|
|
|
943
943
|
"""Candidate should not be referred to by multiple unrelated contests.
|
|
944
944
|
|
|
945
945
|
A Candidate object should only be referenced from one contest, unless the
|
|
946
|
-
contests are related (connected by
|
|
946
|
+
contests are related (connected by ComposingContestIds). If a Person is
|
|
947
947
|
running in multiple unrelated Contests, then that Person is a Candidate
|
|
948
948
|
several times over, but a Candida(te|cy) can't span unrelated contests.
|
|
949
949
|
"""
|
|
@@ -1003,22 +1003,6 @@ class CandidatesReferencedInRelatedContests(base.BaseRule):
|
|
|
1003
1003
|
self.contest_graph.add_node(contest.get("objectId"))
|
|
1004
1004
|
|
|
1005
1005
|
for contest in contests:
|
|
1006
|
-
subsequent_contest_id = None
|
|
1007
|
-
subsequent_contest = contest.find("SubsequentContestId")
|
|
1008
|
-
if element_has_text(subsequent_contest):
|
|
1009
|
-
subsequent_contest_id = subsequent_contest.text
|
|
1010
|
-
# subsequent contest id is not valid if it isn't in the graph
|
|
1011
|
-
if not self.contest_graph.has_node(subsequent_contest_id):
|
|
1012
|
-
raise loggers.ElectionError.from_message(
|
|
1013
|
-
(
|
|
1014
|
-
"Contest {} contains a subsequent Contest Id ({}) that does "
|
|
1015
|
-
"not exist."
|
|
1016
|
-
).format(contest.get("objectId"), subsequent_contest_id),
|
|
1017
|
-
[subsequent_contest],
|
|
1018
|
-
)
|
|
1019
|
-
self.contest_graph.add_edge(
|
|
1020
|
-
contest.get("objectId"), subsequent_contest.text
|
|
1021
|
-
)
|
|
1022
1006
|
# Add the composing contest if it exists
|
|
1023
1007
|
composing_contests = contest.find("ComposingContestIds")
|
|
1024
1008
|
if element_has_text(composing_contests):
|
|
@@ -1033,8 +1017,7 @@ class CandidatesReferencedInRelatedContests(base.BaseRule):
|
|
|
1033
1017
|
).format(contest.get("objectId"), child),
|
|
1034
1018
|
[composing_contests],
|
|
1035
1019
|
)
|
|
1036
|
-
|
|
1037
|
-
self.contest_graph.add_edge(child, subsequent_contest_id)
|
|
1020
|
+
self.contest_graph.add_edge(contest.get("objectId"), child)
|
|
1038
1021
|
|
|
1039
1022
|
def _check_candidate_contests_are_related(self, contest_id_list):
|
|
1040
1023
|
for i in range(len(contest_id_list) - 1):
|
|
@@ -5672,7 +5655,8 @@ METADATA_RULES = (
|
|
|
5672
5655
|
Schema,
|
|
5673
5656
|
SourceDirPathMustBeSetAfterInitialDeliveryDate,
|
|
5674
5657
|
SourceDirPathsAreUnique,
|
|
5675
|
-
|
|
5658
|
+
# TODO(b/555757644): Reenable this rule once we are ready to enforce it.
|
|
5659
|
+
# SqsQueueNameIsFullyQualifiedArn,
|
|
5676
5660
|
SqsQueueNameRequiresS3SourceDirPath,
|
|
5677
5661
|
UniqueLabel,
|
|
5678
5662
|
# go/keep-sorted end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|