SYMBOL INDEX (2445 symbols across 377 files) FILE: client/cypress.config.ts method setupNodeEvents (line 16) | setupNodeEvents(on, _config) { FILE: client/cypress/end-to-end/ballot-comparison.cy.js function urlify (line 220) | function urlify(text) { FILE: client/cypress/end-to-end/ballot-polling.cy.js function urlify (line 188) | function urlify(text) { FILE: client/cypress/plugins.ts function getPdfContent (line 9) | async function getPdfContent(pdfName) { function configureDownloadDirectory (line 15) | function configureDownloadDirectory(on) { function setupMockSmtpServer (line 32) | function setupMockSmtpServer(on) { FILE: client/src/App.tsx type PrivateRouteProps (line 61) | interface PrivateRouteProps extends RouteProps { FILE: client/src/components/Atoms/AsyncButton.tsx type IAsyncButtonProps (line 5) | interface IAsyncButtonProps extends IButtonProps { FILE: client/src/components/Atoms/CSVForm.tsx type IValues (line 38) | interface IValues { type IProps (line 43) | interface IProps { FILE: client/src/components/Atoms/CodeInput.tsx type InputProps (line 17) | type InputProps = Pick< type ICodeInputProps (line 22) | interface ICodeInputProps extends InputProps { FILE: client/src/components/Atoms/Confirm.tsx type IConfirmOptions (line 5) | interface IConfirmOptions { type IUseConfirmResult (line 14) | interface IUseConfirmResult { type IConfirmProps (line 53) | interface IConfirmProps extends IConfirmOptions { FILE: client/src/components/Atoms/Count.tsx type IProps (line 3) | interface IProps { FILE: client/src/components/Atoms/FileUpload.tsx type IFileUploadProps (line 21) | interface IFileUploadProps extends IFileUpload { FILE: client/src/components/Atoms/Form/FormButton.tsx type IProps (line 16) | interface IProps { FILE: client/src/components/Atoms/Form/FormField.test.tsx function testForm (line 6) | function testForm({ FILE: client/src/components/Atoms/Form/FormField.tsx type IWrapperProps (line 7) | interface IWrapperProps { type IProps (line 40) | interface IProps { FILE: client/src/components/Atoms/Form/FormSection.tsx type IProps (line 16) | interface IProps { FILE: client/src/components/Atoms/Form/FormWrapper.tsx type IProps (line 12) | interface IProps { FILE: client/src/components/Atoms/H2Title.tsx type IProps (line 12) | interface IProps { FILE: client/src/components/Atoms/H3Title.tsx type IProps (line 12) | interface IProps { FILE: client/src/components/Atoms/Layout.tsx type IFlexboxProps (line 3) | interface IFlexboxProps { FILE: client/src/components/Atoms/LinkButton.tsx type ILinkButtonProps (line 5) | interface ILinkButtonProps FILE: client/src/components/Atoms/ListAndDetail.tsx type IListProps (line 57) | interface IListProps { constant SELECTED_LIST_ITEM_COLOR (line 87) | const SELECTED_LIST_ITEM_COLOR = 'rgba(19, 124, 189, 0.15)' type IListItemProps (line 111) | interface IListItemProps { FILE: client/src/components/Atoms/SegmentedControl.tsx type IOption (line 13) | interface IOption { type IProps (line 18) | interface IProps { FILE: client/src/components/Atoms/Sidebar.tsx type ISidebarMenuItem (line 23) | interface ISidebarMenuItem type IProps (line 28) | interface IProps { FILE: client/src/components/Atoms/StatusBar.tsx type IAuditHeadingProps (line 22) | interface IAuditHeadingProps { FILE: client/src/components/Atoms/StatusBox.tsx type IStatusBoxProps (line 44) | interface IStatusBoxProps { type IAuditAdminProps (line 120) | interface IAuditAdminProps { type IAuditAdminAnotherRoundStatusBoxProps (line 300) | interface IAuditAdminAnotherRoundStatusBoxProps { FILE: client/src/components/Atoms/StatusTag.tsx type ExtendedIntent (line 38) | type ExtendedIntent = Intent | 'in-progress' type IStatusTagProps (line 40) | interface IStatusTagProps extends Omit { FILE: client/src/components/Atoms/Steps.tsx type StepState (line 49) | type StepState = 'incomplete' | 'current' | 'complete' type IStepListItemProps (line 76) | interface IStepListItemProps { FILE: client/src/components/Atoms/Table.tsx type IFilterInputProps (line 31) | interface IFilterInputProps { type ITableProps (line 80) | interface ITableProps { FILE: client/src/components/Atoms/Wrapper.tsx type IInnerProps (line 13) | interface IInnerProps { FILE: client/src/components/Atoms/react-table-config.d.ts type TableOptions (line 21) | interface TableOptions type Hooks (line 25) | interface Hooks extends UseSortByHooks {} type TableInstance (line 27) | interface TableInstance type TableState (line 31) | interface TableState type ColumnInterface (line 35) | interface ColumnInterface type ColumnInstance (line 39) | interface ColumnInstance type Cell (line 43) | interface Cell {} type Row (line 45) | interface Row {} FILE: client/src/components/AuditAdmin/ActivityLog.test.tsx method get (line 266) | get() { FILE: client/src/components/AuditAdmin/ActivityLog.tsx type IActivity (line 10) | interface IActivity { FILE: client/src/components/AuditAdmin/AuditAdminView.tsx type IParams (line 26) | interface IParams { FILE: client/src/components/AuditAdmin/Progress/AuditBoardsTable.tsx type IAuditBoardMinimal (line 7) | interface IAuditBoardMinimal { type IProps (line 13) | interface IProps { FILE: client/src/components/AuditAdmin/Progress/JurisdictionDetail.test.tsx function mockJsPDF (line 40) | function mockJsPDF(options?: any) { FILE: client/src/components/AuditAdmin/Progress/JurisdictionDetail.tsx type IJurisdictionDetailProps (line 49) | interface IJurisdictionDetailProps { FILE: client/src/components/AuditAdmin/Progress/JurisdictionDiscrepancies.tsx function getContestName (line 33) | function getContestName(contests: IContest[], contestId: string) { function getChoiceName (line 39) | function getChoiceName( function formatVoteCount (line 51) | function formatVoteCount(val: string | number | undefined): string { type IJurisdictionDiscrepanciesProps (line 67) | interface IJurisdictionDiscrepanciesProps { FILE: client/src/components/AuditAdmin/Progress/Progress.test.tsx function mockJsPDF (line 34) | function mockJsPDF(options?: any) { function getDefaultExpectedCalls (line 85) | function getDefaultExpectedCalls() { method get (line 811) | get() { FILE: client/src/components/AuditAdmin/Progress/Progress.tsx type IProgressProps (line 71) | interface IProgressProps { FILE: client/src/components/AuditAdmin/Progress/ProgressMap.tsx type IProps (line 18) | interface IProps { FILE: client/src/components/AuditAdmin/Progress/map-county-corrections.ts type MapCountyCorrections (line 9) | interface MapCountyCorrections { FILE: client/src/components/AuditAdmin/Setup/Contests/ContestForm.tsx type ICheckboxList (line 61) | type ICheckboxList = { type IDropdownCheckboxListProps (line 67) | interface IDropdownCheckboxListProps { type IProps (line 170) | interface IProps { type IChoiceValues (line 178) | interface IChoiceValues { type IContestValues (line 186) | interface IContestValues { FILE: client/src/components/AuditAdmin/Setup/Contests/ContestSelect.test.tsx function uuidv4 (line 64) | function uuidv4() { FILE: client/src/components/AuditAdmin/Setup/Contests/ContestSelect.tsx type IProps (line 17) | interface IProps { type IFormValues (line 24) | interface IFormValues { FILE: client/src/components/AuditAdmin/Setup/Contests/Contests.tsx type IContestsProps (line 7) | interface IContestsProps { FILE: client/src/components/AuditAdmin/Setup/Participants/Participants.tsx type IParticipantsProps (line 12) | interface IParticipantsProps { FILE: client/src/components/AuditAdmin/Setup/Review/ConfirmLaunch.tsx type IConfirmLaunchProps (line 5) | interface IConfirmLaunchProps { FILE: client/src/components/AuditAdmin/Setup/Review/CvrChoiceNameConsistencyError.tsx type IProps (line 15) | interface IProps { FILE: client/src/components/AuditAdmin/Setup/Review/LabeledValue.tsx type IProps (line 3) | interface IProps { FILE: client/src/components/AuditAdmin/Setup/Review/Review.test.tsx function testContest (line 1240) | function testContest(contestIndex: number): Omit { FILE: client/src/components/AuditAdmin/Setup/Review/Review.tsx type IProps (line 85) | interface IProps { type ISelectSampleSizesProps (line 801) | interface ISelectSampleSizesProps { FILE: client/src/components/AuditAdmin/Setup/Review/SamplePreview.tsx type IProps (line 8) | interface IProps { FILE: client/src/components/AuditAdmin/Setup/Review/StandardizeContestChoiceNamesDialog.tsx function isContestChoiceNameStandardizationComplete (line 18) | function isContestChoiceNameStandardizationComplete( type IDialogProps (line 49) | interface IDialogProps { type ICalloutProps (line 185) | interface ICalloutProps { FILE: client/src/components/AuditAdmin/Setup/Review/StandardizeContestNames.tsx type IStandardizeContestNamesDialogProps (line 17) | interface IStandardizeContestNamesDialogProps { FILE: client/src/components/AuditAdmin/Setup/Review/useSampleSizes.ts type ISampleSizeOption (line 5) | interface ISampleSizeOption { type ISampleSizeOptions (line 14) | interface ISampleSizeOptions { type ISelectedSampleSizes (line 18) | interface ISelectedSampleSizes { type ISampleSizesResponse (line 22) | interface ISampleSizesResponse { FILE: client/src/components/AuditAdmin/Setup/Settings/Settings.tsx constant RANDOM_SEED_INSTRUCTIONS (line 28) | const RANDOM_SEED_INSTRUCTIONS = type IProps (line 91) | interface IProps { type IValues (line 97) | type IValues = Pick< FILE: client/src/components/AuditAdmin/Setup/Setup.tsx type Stage (line 26) | type Stage = ElementType type ISetupProps (line 36) | interface ISetupProps { FILE: client/src/components/AuditAdmin/useRoundsAuditAdmin.ts type IRound (line 14) | interface IRound { type ISampleSizes (line 30) | interface ISampleSizes { type ICreateRoundBody (line 69) | interface ICreateRoundBody { type ISamplePreviewJurisdiction (line 156) | interface ISamplePreviewJurisdiction { type ISamplePreview (line 162) | interface ISamplePreview { FILE: client/src/components/AuditBoard/Ballot.tsx type IProps (line 93) | interface IProps { type IInterpretationSummaryProps (line 109) | interface IInterpretationSummaryProps { FILE: client/src/components/AuditBoard/BallotAudit.tsx function constructEmptyInterpretation (line 72) | function constructEmptyInterpretation( function hasInterpretationBeenSpecified (line 85) | function hasInterpretationBeenSpecified({ type IProps (line 99) | interface IProps { type IBallotAuditContestProps (line 211) | interface IBallotAuditContestProps { FILE: client/src/components/AuditBoard/BlockCheckbox.tsx type IProps (line 45) | interface IProps { FILE: client/src/components/AuditBoard/BoardTable.tsx type IProps (line 125) | interface IProps { FILE: client/src/components/AuditBoard/MemberForm.tsx type IProps (line 9) | interface IProps { FILE: client/src/components/AuditBoard/SignOff.tsx type IProps (line 11) | interface IProps { FILE: client/src/components/AuditBoard/ballotInterpretation.ts constant INVALID_WRITE_IN (line 3) | const INVALID_WRITE_IN = 'INVALID_WRITE_IN' type IBallotInterpretationFormState (line 8) | interface IBallotInterpretationFormState { function ballotInterpretationToFormState (line 20) | function ballotInterpretationToFormState({ function ballotInterpretationFromFormState (line 42) | function ballotInterpretationFromFormState({ FILE: client/src/components/Header.tsx function Nav (line 79) | function Nav( type TParams (line 127) | interface TParams { type IHeaderAuditBoardProps (line 246) | interface IHeaderAuditBoardProps { FILE: client/src/components/HomeScreen.tsx type INewAudit (line 454) | interface INewAudit { FILE: client/src/components/JurisdictionAdmin/BatchInventory.tsx type Step (line 40) | type Step = constant STEPS (line 46) | const STEPS: Step[] = [ constant STEPS_IF_NOT_SHOWING_BALLOT_MANIFEST (line 53) | const STEPS_IF_NOT_SHOWING_BALLOT_MANIFEST: Step[] = [ function areAllFilesUploaded (line 63) | function areAllFilesUploaded({ constant DATA_TYPES (line 78) | const DATA_TYPES = ['systemType', 'cvr', 'tabulatorStatus', 'signOff'] a... type DataType (line 79) | type DataType = typeof DATA_TYPES[number] function batchInventoryQueryKey (line 81) | function batchInventoryQueryKey( type ISystemTypeQueries (line 88) | interface ISystemTypeQueries { type ISignOffQueries (line 184) | interface ISignOffQueries { FILE: client/src/components/JurisdictionAdmin/BatchRoundProgress.tsx type IBatchRoundProgressProps (line 7) | interface IBatchRoundProgressProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/BatchRoundSteps.test.tsx function mockJsPDF (line 36) | function mockJsPDF(options?: any) { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/BatchRoundSteps.tsx type IBatchRoundStepsProps (line 18) | interface IBatchRoundStepsProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/BatchRoundTallyEntry/BatchDetail.tsx type ITabsWrapperProps (line 36) | interface ITabsWrapperProps { constant VOTE_TOTALS_TAB_ID (line 108) | const VOTE_TOTALS_TAB_ID = 'vote-totals' type IBatchResultTallySheetStateEntry (line 114) | interface IBatchResultTallySheetStateEntry extends IBatchResultTallySheet { type ITab (line 118) | interface ITab { function sheetToSheetStateEntry (line 123) | function sheetToSheetStateEntry( function sheetStateEntryToSheet (line 129) | function sheetStateEntryToSheet( function defaultSheetName (line 138) | function defaultSheetName(sheetNumber: number) { function constructEmptySheet (line 142) | function constructEmptySheet(sheetName: string): IBatchResultTallySheet { function tabsFromSheets (line 149) | function tabsFromSheets(sheets: IBatchResultTallySheetStateEntry[]): ITa... type IBatchDetailProps (line 159) | interface IBatchDetailProps { type IBatchResultTallySheetProps (line 376) | interface IBatchResultTallySheetProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/BatchRoundTallyEntry/BatchRoundTallyEntry.tsx type IProps (line 22) | interface IProps { type IBatchRoundTallyEntryContentProps (line 59) | interface IBatchRoundTallyEntryContentProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/DownloadBatchRetrievalListButton.tsx type IDownloadBatchRetrievalListButtonProps (line 6) | interface IDownloadBatchRetrievalListButtonProps extends IButtonProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/DownloadBatchTallySheetsButton.tsx type IDownloadBatchTallySheetsButtonProps (line 12) | interface IDownloadBatchTallySheetsButtonProps extends IButtonProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/DownloadStackLabelsButton.tsx type DownloadStackLabelsButtonProps (line 10) | interface DownloadStackLabelsButtonProps extends IButtonProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/EnterTalliesStep.tsx type IEnterTalliesStepProps (line 26) | interface IEnterTalliesStepProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/PrepareBatchesStep.tsx type IPrepareBatchesStepProps (line 11) | interface IPrepareBatchesStepProps { FILE: client/src/components/JurisdictionAdmin/BatchRoundSteps/TallyEntryAccountsStep.tsx type ITallyEntryLoginRequest (line 51) | interface ITallyEntryLoginRequest { type ITallyEntryAccountStatus (line 57) | interface ITallyEntryAccountStatus { type ITurnOnTallyEntryAccountsPromptProps (line 136) | interface ITurnOnTallyEntryAccountsPromptProps { type IConfirmTallyEntryLoginProps (line 181) | interface IConfirmTallyEntryLoginProps { type IManageTallyEntryAccountsProps (line 343) | interface IManageTallyEntryAccountsProps { type ITallyEntryAccountsStep (line 455) | interface ITallyEntryAccountsStep { FILE: client/src/components/JurisdictionAdmin/CreateAuditBoards.tsx type IValues (line 13) | interface IValues { type IProps (line 17) | interface IProps { FILE: client/src/components/JurisdictionAdmin/FullHandTallyDataEntry.tsx type IProps (line 112) | interface IProps { type FormValues (line 147) | interface FormValues { FILE: client/src/components/JurisdictionAdmin/RoundDataEntry.tsx type IProps (line 26) | interface IProps { type IValues (line 30) | interface IValues { FILE: client/src/components/JurisdictionAdmin/RoundManagement.test.tsx function mockJsPDF (line 37) | function mockJsPDF(options?: jsPDFOptions) { FILE: client/src/components/JurisdictionAdmin/RoundManagement.tsx type IRoundManagementProps (line 39) | interface IRoundManagementProps { type IJAFileDownloadButtonsProps (line 208) | interface IJAFileDownloadButtonsProps { FILE: client/src/components/JurisdictionAdmin/_mocks.ts type INullResultValues (line 11) | interface INullResultValues { FILE: client/src/components/JurisdictionAdmin/candidateTotalsByBatchTemplateCsv.ts function candidateTotalsByBatchTemplateCsvPath (line 2) | function candidateTotalsByBatchTemplateCsvPath({ FILE: client/src/components/JurisdictionAdmin/generateSheets.test.tsx function constructMinimalContest (line 46) | function constructMinimalContest( function mockJsPDF (line 61) | function mockJsPDF(options?: jsPDFOptions) { FILE: client/src/components/JurisdictionAdmin/generateSheets.ts function renderTextWrapped (line 34) | function renderTextWrapped({ function addPageBreakIfNecessary (line 60) | function addPageBreakIfNecessary({ constant LABEL_HEIGHT (line 81) | const LABEL_HEIGHT = 72 constant LABEL_WIDTH (line 82) | const LABEL_WIDTH = 190 constant LABEL_START_Y (line 83) | const LABEL_START_Y = 36 constant LABEL_START_X (line 84) | const LABEL_START_X = 13 constant LABEL_MARGIN_X (line 85) | const LABEL_MARGIN_X = 9 constant LABEL_PADDING_Y (line 86) | const LABEL_PADDING_Y = 7 constant LABEL_PADDING_X (line 87) | const LABEL_PADDING_X = 7 constant PLACEHOLDERS_WIDTH (line 171) | const PLACEHOLDERS_WIDTH = 180 constant PLACEHOLDERS_START_X (line 172) | const PLACEHOLDERS_START_X = 20 constant PLACEHOLDERS_START_Y (line 173) | const PLACEHOLDERS_START_Y = 20 type IMinimalContest (line 356) | interface IMinimalContest { method didParseCell (line 512) | didParseCell(data) { method willDrawCell (line 519) | willDrawCell(data) { constant STACK_LABEL_MAX_CONTEST_NAME_LENGTH (line 803) | const STACK_LABEL_MAX_CONTEST_NAME_LENGTH = 40 constant STACK_LABEL_MAX_CANDIDATE_NAME_LENGTH (line 804) | const STACK_LABEL_MAX_CANDIDATE_NAME_LENGTH = 20 constant STACK_LABEL_TITLE_LENGTH_XL_FONT_CUTOFF (line 805) | const STACK_LABEL_TITLE_LENGTH_XL_FONT_CUTOFF = 12 constant STACK_LABEL_TEXT_COLOR (line 806) | const STACK_LABEL_TEXT_COLOR = Colors.GRAY2 constant STACK_LABEL_TITLE_COLORS (line 807) | const STACK_LABEL_TITLE_COLORS = [ constant DEFAULT_STACK_LABELS (line 819) | const DEFAULT_STACK_LABELS = [ function formCandidateLabelTitle (line 824) | function formCandidateLabelTitle(candidateFullName: string): string { function formCandidateLabelSubtitle (line 845) | function formCandidateLabelSubtitle(contestName: string): string { function formCandidateLabels (line 851) | function formCandidateLabels( FILE: client/src/components/JurisdictionAdmin/useBallots.ts type IBallot (line 9) | interface IBallot { type ISampleCount (line 59) | interface ISampleCount { FILE: client/src/components/JurisdictionAdmin/useBatchResults.ts type IBatchResults (line 4) | interface IBatchResults { type IBatchResultTallySheet (line 8) | interface IBatchResultTallySheet { type IBatch (line 13) | interface IBatch { type IBatches (line 21) | interface IBatches { FILE: client/src/components/JurisdictionAdmin/useFullHandTallyResults.ts type IFullHandTallyBatchResult (line 4) | interface IFullHandTallyBatchResult { type IFullHandTallyBatchResults (line 18) | interface IFullHandTallyBatchResults { FILE: client/src/components/JurisdictionAdmin/useResults.ts type IResultValues (line 4) | interface IResultValues { FILE: client/src/components/PublicPages/AuditPlanner/AuditPlanCard.tsx constant HIDDEN_LABEL_CLASS_NAME (line 11) | const HIDDEN_LABEL_CLASS_NAME = 'hidden-label' type IContainerProps (line 13) | interface IContainerProps { constant DEFAULT_RISK_LIMIT_PERCENTAGE (line 70) | const DEFAULT_RISK_LIMIT_PERCENTAGE = 5 type IProps (line 72) | interface IProps { FILE: client/src/components/PublicPages/AuditPlanner/AuditPlanner.test.tsx function renderAuditPlanner (line 16) | function renderAuditPlanner() { function areExpectedErrorMessagesDisplayed (line 26) | async function areExpectedErrorMessagesDisplayed({ function checkThatElectionResultsCardIsInInitialState (line 52) | async function checkThatElectionResultsCardIsInInitialState() { function moveSlider (line 116) | function moveSlider( FILE: client/src/components/PublicPages/AuditPlanner/ElectionResultsCard.tsx constant HIDDEN_INPUT_CLASS_NAME (line 25) | const HIDDEN_INPUT_CLASS_NAME = 'hidden-input' constant MAX_NUMERICAL_VALUE (line 120) | const MAX_NUMERICAL_VALUE = 1e15 type INumericInputProps (line 132) | interface INumericInputProps { type INumericInputFormGroupProps (line 190) | interface INumericInputFormGroupProps type IProps (line 214) | interface IProps { FILE: client/src/components/PublicPages/AuditPlanner/SampleSize.tsx constant CONTAINER_HEIGHT (line 9) | const CONTAINER_HEIGHT = 36 type IProps (line 27) | interface IProps { FILE: client/src/components/PublicPages/AuditPlanner/electionResults.ts type ICandidate (line 1) | interface ICandidate { type IElectionResults (line 6) | interface IElectionResults { type ICandidateFormState (line 12) | interface ICandidateFormState { type IElectionResultsFormState (line 17) | interface IElectionResultsFormState { function constructNewCandidate (line 23) | function constructNewCandidate(): ICandidateFormState { function constructInitialElectionResults (line 30) | function constructInitialElectionResults(): IElectionResultsFormState { function assertIsElectionResults (line 38) | function assertIsElectionResults( FILE: client/src/components/PublicPages/AuditPlanner/sampleSizes.ts constant BALLOT_POLLING_SAMPLE_SIZE_KEYS (line 6) | const BALLOT_POLLING_SAMPLE_SIZE_KEYS = ['asn', '0.7', '0.8', '0.9'] as ... type BallotPollingSampleSizeKey (line 7) | type BallotPollingSampleSizeKey = typeof BALLOT_POLLING_SAMPLE_SIZE_KEYS... type SampleSizes (line 9) | type SampleSizes = { type UseSampleSizesOptions (line 19) | interface UseSampleSizesOptions { FILE: client/src/components/SupportTools/Breadcrumbs.tsx type BreadcrumbsProps (line 3) | interface BreadcrumbsProps { FILE: client/src/components/SupportTools/List.tsx type ILinkItemProps (line 36) | interface ILinkItemProps { FILE: client/src/components/SupportTools/RoundsTable.tsx type IProps (line 10) | interface IProps { type ILastRoundActionProps (line 69) | interface ILastRoundActionProps { FILE: client/src/components/SupportTools/shared.tsx type ColumnProps (line 8) | interface ColumnProps { FILE: client/src/components/SupportTools/support-api.tsx type IOrganizationBase (line 6) | interface IOrganizationBase { type IOrganization (line 11) | interface IOrganization extends IOrganizationBase { type IOrganizationForSupport (line 17) | interface IOrganizationForSupport extends IOrganizationBase { type IElectionBase (line 23) | interface IElectionBase { type IAuditAdmin (line 35) | interface IAuditAdmin { type IRound (line 40) | interface IRound { type IElectionWithOrg (line 46) | interface IElectionWithOrg extends IElectionBase { type IElection (line 50) | interface IElection extends IElectionWithOrg { type IElectionForSupport (line 55) | interface IElectionForSupport extends IElectionWithOrg { type IJurisdictionBase (line 60) | interface IJurisdictionBase { type IJurisdiction (line 65) | interface IJurisdiction extends IJurisdictionBase { type IJurisdictionAdmin (line 73) | interface IJurisdictionAdmin { type IAuditBoard (line 77) | interface IAuditBoard { type IBatch (line 83) | interface IBatch { type ICombinedBatch (line 88) | interface ICombinedBatch { FILE: client/src/components/TallyEntryUser/TallyEntryLoginScreen.tsx type ILoginStartFormValues (line 44) | interface ILoginStartFormValues { type ILoginCodeDisplayProps (line 131) | interface ILoginCodeDisplayProps { type ITallyEntryLoginScreenProps (line 176) | interface ITallyEntryLoginScreenProps { FILE: client/src/components/TallyEntryUser/TallyEntryScreen.tsx type ITallyEntryScreenProps (line 18) | interface ITallyEntryScreenProps { FILE: client/src/components/UserContext.tsx type IElection (line 10) | interface IElection { type IOrganization (line 19) | interface IOrganization { type IJurisdiction (line 25) | interface IJurisdiction { type IAuditAdmin (line 32) | interface IAuditAdmin { type IJurisdictionAdmin (line 39) | interface IJurisdictionAdmin { type IMember (line 47) | interface IMember { type IAuditBoard (line 52) | interface IAuditBoard { type ITallyEntryUser (line 64) | interface ITallyEntryUser { type IUser (line 77) | type IUser = type ISupportUser (line 83) | interface ISupportUser { type IAuthData (line 87) | interface IAuthData { FILE: client/src/components/testUtilities.tsx type MatchParameter (line 26) | type MatchParameter = { [K in keyof Params]?: string } type RenderWithRouterReturn (line 66) | type RenderWithRouterReturn = RenderResult & { function renderWithRouter (line 71) | function renderWithRouter( type FetchRequest (line 97) | interface FetchRequest { function maybeMockAxios (line 126) | function maybeMockAxios() { function hasTextAcrossElements (line 300) | function hasTextAcrossElements(text: string): Matcher { function readBlobAsText (line 316) | function readBlobAsText(blob: Blob): Promise { FILE: client/src/components/useAuditAdminsOrganizations.ts function useAuditAdminsOrganizations (line 5) | function useAuditAdminsOrganizations( FILE: client/src/components/useAuditBoards.ts type IAuditBoardMember (line 6) | interface IAuditBoardMember { type IAuditBoard (line 11) | interface IAuditBoard { FILE: client/src/components/useAuditSettings.ts type AuditType (line 10) | type AuditType = type IAuditSettings (line 16) | interface IAuditSettings { type TNewSettings (line 34) | type TNewSettings = Pick< FILE: client/src/components/useBatchFilesBundle.ts type IBundleStatus (line 6) | interface IBundleStatus { FILE: client/src/components/useCSV.ts type FileProcessingStatus (line 8) | enum FileProcessingStatus { type CvrFileType (line 15) | enum CvrFileType { type IFileInfo (line 23) | interface IFileInfo { type IUpload (line 40) | interface IUpload { type UploadUrlResponseData (line 45) | type UploadUrlResponseData = { FILE: client/src/components/useContestChoiceNameStandardizations.ts type IContestChoiceNameStandardizations (line 12) | interface IContestChoiceNameStandardizations { type IContestChoiceNameStandardizationsResponse (line 20) | interface IContestChoiceNameStandardizationsResponse { FILE: client/src/components/useContestNameStandardizations.ts type IContestNameStandardizations (line 8) | interface IContestNameStandardizations { FILE: client/src/components/useContestsBallotComparison.ts type INewContest (line 4) | interface INewContest { type IContest (line 12) | interface IContest extends INewContest { FILE: client/src/components/useFeatureFlag.ts type BatchInventoryConfig (line 4) | interface BatchInventoryConfig { constant BATCH_INVENTORY_CONFIGS (line 8) | const BATCH_INVENTORY_CONFIGS: { FILE: client/src/components/useFileUpload.ts type IUseFileUploadProps (line 15) | interface IUseFileUploadProps { type IFileUpload (line 20) | interface IFileUpload { type CompleteFileUploadArgs (line 60) | type CompleteFileUploadArgs = { type UploadUrlResponseData (line 65) | type UploadUrlResponseData = { type ICvrsFileUpload (line 288) | interface ICvrsFileUpload extends Omit { FILE: client/src/components/useJurisdictions.ts type IBallotManifestInfo (line 8) | interface IBallotManifestInfo extends IFileInfo { type ICvrFileInfo (line 16) | interface ICvrFileInfo extends IFileInfo { type IBatchTalliesFileInfo (line 20) | interface IBatchTalliesFileInfo extends IFileInfo { type JurisdictionRoundStatus (line 24) | enum JurisdictionRoundStatus { type JurisdictionProgressStatus (line 30) | enum JurisdictionProgressStatus { type IJurisdiction (line 42) | interface IJurisdiction { type LastLoginByJurisdiction (line 164) | type LastLoginByJurisdiction = Record type DiscrepanciesByJurisdiction (line 177) | type DiscrepanciesByJurisdiction = Record< type ContestDiscrepancies (line 185) | type ContestDiscrepancies = { FILE: client/src/components/useSearchParams.ts type SearchParams (line 4) | type SearchParams = Record FILE: client/src/components/useStandardizedContests.ts type IStandardizedContest (line 4) | interface IStandardizedContest { FILE: client/src/components/utilities.ts function tick (line 134) | function tick() { function assert (line 196) | function assert( FILE: client/src/react-app-env.d.ts type ProcessEnv (line 6) | interface ProcessEnv { FILE: client/src/setupTests.ts type Matchers (line 18) | interface Matchers { method toMatchPdfSnapshot (line 25) | async toMatchPdfSnapshot(pdf: string | Buffer, options?: CompareOptions) { method setStart (line 55) | setStart() { method setEnd (line 58) | setEnd() { FILE: client/src/types.ts type ElementType (line 1) | type ElementType< type IErrorResponse (line 5) | interface IErrorResponse { type IChoice (line 11) | interface IChoice { type ICvrChoiceNameConsistencyError (line 19) | interface ICvrChoiceNameConsistencyError { type IContest (line 27) | interface IContest { type Interpretation (line 40) | enum Interpretation { type IBallotInterpretation (line 47) | interface IBallotInterpretation { type BallotStatus (line 60) | enum BallotStatus { FILE: client/src/utils/api.ts class ApiError (line 31) | class ApiError extends Error { method constructor (line 34) | public constructor(message: string, statusCode: number) { FILE: client/src/utils/array.ts function groupBy (line 2) | function groupBy( function sortBy (line 16) | function sortBy(arr: T[], keyFn: (elt: T) => number | string): T[] { function hashBy (line 26) | function hashBy( function replaceAtIndex (line 33) | function replaceAtIndex(arr: T[], index: number, newElement: T): T[] { function range (line 40) | function range(start: number, stop: number): number[] { function partition (line 44) | function partition( FILE: client/src/utils/debounce.ts function useDebounce (line 18) | function useDebounce(value: T, delayMs = 250): [T, boolean] { FILE: client/src/utils/number-schema.ts type RoundMethod (line 21) | type RoundMethod = 'ceil' | 'floor' | 'round' | 'trunc' function getGroupingSeparator (line 23) | function getGroupingSeparator() { function parse (line 42) | function parse(value: unknown): number { class NumberSchema (line 65) | class NumberSchema extends (MixedSchema as new ( method constructor (line 68) | public constructor() { method _typeCheck (line 77) | protected _typeCheck(possiblyWrappedValue: unknown): boolean { method min (line 86) | public min(min: number, message = locale.min): this { method max (line 98) | public max(max: number, message = locale.max): this { method lessThan (line 110) | public lessThan(less: number, message = locale.lessThan): this { method moreThan (line 122) | public moreThan(more: number, message = locale.moreThan): this { method positive (line 134) | public positive(msg = locale.positive): this { method negative (line 138) | public negative(msg = locale.negative): this { method integer (line 142) | public integer(message = locale.integer): this { method truncate (line 150) | public truncate(): this { method round (line 156) | public round(methodWithPossibleIncorrectCasing?: RoundMethod): this { function number (line 178) | function number(): NumberSchema { FILE: client/src/utils/number.ts function sum (line 2) | function sum(nums: number[]): number { FILE: client/src/utils/objects.ts function isObjectEmpty (line 1) | function isObjectEmpty(object: Record): boolean { function mapValues (line 5) | function mapValues( FILE: client/src/utils/responsiveness.ts function useMediaQuery (line 10) | function useMediaQuery(query: string): boolean { constant BREAKPOINT_M (line 29) | const BREAKPOINT_M = '40em' constant BREAKPOINT_L (line 31) | const BREAKPOINT_L = '64em' type IBreakpoints (line 33) | interface IBreakpoints { function useCssBreakpoints (line 43) | function useCssBreakpoints(): IBreakpoints { FILE: client/src/utils/sleep.ts function sleep (line 2) | function sleep(ms: number): Promise { FILE: client/src/utils/string.ts function blankLine (line 1) | function blankLine(length: number): string { function pluralize (line 9) | function pluralize(word: string, n: number): string { FILE: client/vite.config.ts constant IS_CI (line 5) | const IS_CI = process.env['CI'] === 'true'; FILE: fixtures/generate_election.py class ContestSpec (line 23) | class ContestSpec(TypedDict): class JurisdictionSpec (line 32) | class JurisdictionSpec(TypedDict): class ElectionSpec (line 36) | class ElectionSpec(TypedDict): class JurisdictionTally (line 46) | class JurisdictionTally(TypedDict): class Batch (line 55) | class Batch(TypedDict): class Ballot (line 67) | class Ballot(TypedDict): function generate_contest_votes (line 82) | def generate_contest_votes( function safe_dict (line 101) | def safe_dict(*args): function generate_ballot_votes (line 105) | def generate_ballot_votes(tallies: JurisdictionTallies) -> Iterable[Ball... function generate_batches (line 122) | def generate_batches( function generate_cvrs (line 136) | def generate_cvrs( function write_dominion_cvrs (line 157) | def write_dominion_cvrs(election_spec: ElectionSpec, cvrs: Cvrs, output_... function cvrs_to_manifest (line 218) | def cvrs_to_manifest(cvrs: Cvrs) -> Manifest: function write_manifest (line 230) | def write_manifest(manifest: Manifest, output_file: IO): function cvrs_to_batch_tallies (line 237) | def cvrs_to_batch_tallies(cvrs: Cvrs, contest: ContestSpec) -> BatchTall... function write_batch_tallies (line 261) | def write_batch_tallies( function random_numbers_that_sum_to_total (line 273) | def random_numbers_that_sum_to_total( function split_contest_tallies_across_jurisdictions (line 289) | def split_contest_tallies_across_jurisdictions( function generate_jurisdiction_admins (line 322) | def generate_jurisdiction_admins( function write_jurisdictions (line 333) | def write_jurisdictions(jurisdiction_admins: dict[str, list[str]], outpu... function write_standardized_contests (line 341) | def write_standardized_contests(election_spec: ElectionSpec, output_file... function generate_election (line 353) | def generate_election(election_spec: ElectionSpec, output_dir_path: str): FILE: fixtures/test/test_generate_election.py function rand (line 9) | def rand(): function test_random_numbers_that_sum_to_total (line 13) | def test_random_numbers_that_sum_to_total(snapshot, rand): function assert_is_valid_jurisdiction_tallies (line 31) | def assert_is_valid_jurisdiction_tallies( function assert_is_valid_cvrs (line 55) | def assert_is_valid_cvrs(cvrs: list[Ballot], tallies: JurisdictionTallies): function assert_is_valid_manifest (line 83) | def assert_is_valid_manifest(manifest: Manifest, cvrs: list[Ballot]): function assert_is_valid_batch_tallies (line 88) | def assert_is_valid_batch_tallies( function test_simple_election (line 104) | def test_simple_election(snapshot, rand): function test_small_election (line 154) | def test_small_election(rand): FILE: scripts/batch-inventory-progress.py function file_status (line 21) | def file_status(file): FILE: scripts/combine-hybrid-results.py function ballot_comparison_stratum (line 13) | def ballot_comparison_stratum(contest): function ballot_polling_stratum (line 35) | def ballot_polling_stratum(contest, remap): function combined_contests (line 63) | def combined_contests(cvr_contest, bp_contest, remap): FILE: scripts/fix-ess-cvr-quotes.py function split_attach_sep (line 7) | def split_attach_sep(pattern, str): FILE: scripts/migrate-files-to-s3.py function migrate_file (line 7) | def migrate_file(file, path): FILE: scripts/parse-xml-cvrs.py function find (line 19) | def find(xml, tag): function findall (line 23) | def findall(xml, tag): function get_directory_name (line 30) | def get_directory_name(file_path): function parse_scanned_ballot_file (line 36) | def parse_scanned_ballot_file(file_path, cvr_workstation_mapping): function parse_cvr_file (line 48) | def parse_cvr_file( FILE: scripts/run-dev-worker.py class RunDevWorkerEventHandler (line 10) | class RunDevWorkerEventHandler(FileSystemEventHandler): method __init__ (line 11) | def __init__(self, command: list[str], patterns: list[str]): method start_process (line 18) | def start_process(self): method on_modified (line 26) | def on_modified(self, event: DirModifiedEvent | FileModifiedEvent): FILE: scripts/scrapers/georgia-results-downloader/index.js function transformData (line 20) | function transformData(jsonData) { function createAndDownloadCSV (line 61) | function createAndDownloadCSV(rows) { FILE: server/activity_log/activity_log.py class ActivityBase (line 13) | class ActivityBase: class Activity (line 25) | class Activity: class DeleteAudit (line 31) | class DeleteAudit(Activity): class CreateAudit (line 36) | class CreateAudit(Activity): class StartRound (line 41) | class StartRound(Activity): class EndRound (line 46) | class EndRound(Activity): class CalculateSampleSizes (line 52) | class CalculateSampleSizes(Activity): class JurisdictionActivity (line 57) | class JurisdictionActivity(Activity): class UploadFile (line 63) | class UploadFile(JurisdictionActivity): class CreateAuditBoards (line 69) | class CreateAuditBoards(JurisdictionActivity): class RecordResults (line 74) | class RecordResults(JurisdictionActivity): class FinalizeBatchResults (line 79) | class FinalizeBatchResults(JurisdictionActivity): class AuditBoardSignOff (line 84) | class AuditBoardSignOff(JurisdictionActivity): class JurisdictionAdminLogin (line 89) | class JurisdictionAdminLogin(Activity): function activity_base (line 93) | def activity_base(election: Election) -> ActivityBase: function record_activity (line 109) | def record_activity(activity: Activity, session: Session = db_session): FILE: server/activity_log/slack_worker.py function slack_message (line 14) | def slack_message(activity: activity_log.Activity): function send_new_slack_notification (line 322) | def send_new_slack_notification(organization_id: str | None = None) -> N... FILE: server/api/activity.py function serialize_activity (line 12) | def serialize_activity(activity: ActivityLogRecord): function list_activities (line 40) | def list_activities(organization_id: str): FILE: server/api/audit_boards.py function validate_audit_boards (line 38) | def validate_audit_boards( function assign_sampled_ballots (line 62) | def assign_sampled_ballots( function create_audit_boards (line 173) | def create_audit_boards(election: Election, jurisdiction: Jurisdiction, ... function round_status_by_audit_board (line 206) | def round_status_by_audit_board( function serialize_audit_board (line 235) | def serialize_audit_board(audit_board: AuditBoard, round_status: JSONDic... function serialize_members (line 245) | def serialize_members(audit_board): function list_audit_boards (line 265) | def list_audit_boards( function validate_members (line 306) | def validate_members(members: list[JSONDict]): function set_audit_board_members (line 326) | def set_audit_board_members( function validate_sign_off (line 358) | def validate_sign_off(sign_off_request: JSONDict, audit_board: AuditBoard): function sign_off_audit_board (line 383) | def sign_off_audit_board( function reopen_audit_board (line 414) | def reopen_audit_board( FILE: server/api/ballot_manifest.py class CountingGroup (line 45) | class CountingGroup(str, enum.Enum): function all_manifests_uploaded (line 66) | def all_manifests_uploaded(contest: Contest): function set_total_ballots_from_manifests (line 73) | def set_total_ballots_from_manifests(contest: Contest): function hybrid_contest_total_ballots (line 82) | def hybrid_contest_total_ballots(contest: Contest) -> HybridPair: function hybrid_jurisdiction_total_ballots (line 95) | def hybrid_jurisdiction_total_ballots(jurisdiction: Jurisdiction) -> Hyb... function process_ballot_manifest_file (line 107) | def process_ballot_manifest_file( function is_batch_inventory_worksheet (line 248) | def is_batch_inventory_worksheet(first_line: bytes) -> bool: function validate_is_not_batch_inventory_worksheet (line 252) | def validate_is_not_batch_inventory_worksheet(file: BinaryIO): function save_ballot_manifest_file (line 259) | def save_ballot_manifest_file( function clear_ballot_manifest_file (line 279) | def clear_ballot_manifest_file(jurisdiction: Jurisdiction): function start_upload_for_ballot_manifest (line 296) | def start_upload_for_ballot_manifest( function complete_upload_for_ballot_manifest (line 320) | def complete_upload_for_ballot_manifest( function get_ballot_manifest (line 347) | def get_ballot_manifest(election: Election, jurisdiction: Jurisdiction): function download_ballot_manifest_file (line 359) | def download_ballot_manifest_file( function clear_ballot_manifest (line 377) | def clear_ballot_manifest( FILE: server/api/ballots.py function ballot_retrieval_list (line 21) | def ballot_retrieval_list(jurisdiction: Jurisdiction, round: Round) -> T... function get_retrieval_list (line 141) | def get_retrieval_list(election: Election, jurisdiction: Jurisdiction, r... function deserialize_interpretation (line 149) | def deserialize_interpretation( function serialize_interpretation (line 167) | def serialize_interpretation(interpretation: BallotInterpretation) -> JS... function serialize_ballot (line 177) | def serialize_ballot( function list_ballots_for_jurisdiction (line 211) | def list_ballots_for_jurisdiction( function list_ballots_for_audit_board (line 271) | def list_ballots_for_audit_board( function validate_interpretation (line 352) | def validate_interpretation(interpretation: JSONDict): function validate_audit_ballot (line 388) | def validate_audit_ballot(ballot_audit: JSONDict, jurisdiction: Jurisdic... function audit_ballot (line 409) | def audit_ballot( FILE: server/api/batch_files.py function start_candidate_totals_bundle_generation (line 35) | def start_candidate_totals_bundle_generation(election: Election): function start_manifests_bundle_generation (line 79) | def start_manifests_bundle_generation(election: Election): function get_batch_files_bundle_status (line 123) | def get_batch_files_bundle_status(election: Election, bundle_id: str): function _get_bundle_download_url (line 154) | def _get_bundle_download_url(bundle: BatchFileBundle) -> str: function download_batch_files_bundle (line 181) | def download_batch_files_bundle(election: Election, bundle_id: str): function generate_batch_files_bundle (line 209) | def generate_batch_files_bundle(election_id: str, bundle_id: str, bundle... function _upload_bundle_file (line 332) | def _upload_bundle_file(file_path: str, filename: str, election_id: str)... FILE: server/api/batch_inventory.py function batch_key_to_name (line 85) | def batch_key_to_name( class ElectionResults (line 100) | class ElectionResults(TypedDict): function dict_to_items_list (line 111) | def dict_to_items_list(dictionary): function items_list_to_dict (line 115) | def items_list_to_dict(items): function validate_choice_name_and_get_choice_id (line 124) | def validate_choice_name_and_get_choice_id( function process_batch_inventory_cvr_file (line 151) | def process_batch_inventory_cvr_file( function process_batch_inventory_tabulator_status_file (line 699) | def process_batch_inventory_tabulator_status_file( function set_batch_inventory_system_type (line 836) | def set_batch_inventory_system_type( function get_batch_inventory_system_type (line 875) | def get_batch_inventory_system_type( function start_upload_for_batch_inventory_cvr (line 894) | def start_upload_for_batch_inventory_cvr( function complete_upload_for_batch_inventory_cvr (line 922) | def complete_upload_for_batch_inventory_cvr( function get_batch_inventory_cvr (line 978) | def get_batch_inventory_cvr( function clear_batch_inventory_cvr (line 996) | def clear_batch_inventory_cvr( function download_batch_inventory_cvr (line 1024) | def download_batch_inventory_cvr( function start_upload_for_batch_inventory_tabulator_status (line 1043) | def start_upload_for_batch_inventory_tabulator_status( function complete_upload_for_batch_inventory_tabulator_status (line 1065) | def complete_upload_for_batch_inventory_tabulator_status( function get_batch_inventory_tabulator_status (line 1107) | def get_batch_inventory_tabulator_status( function clear_batch_inventory_tabulator_status (line 1127) | def clear_batch_inventory_tabulator_status( function download_batch_inventory_tabulator_status (line 1152) | def download_batch_inventory_tabulator_status( function download_batch_inventory_worksheet (line 1171) | def download_batch_inventory_worksheet(election: Election, jurisdiction:... function batch_inventory_sign_off_status (line 1234) | def batch_inventory_sign_off_status( function clear_sign_off (line 1247) | def clear_sign_off(batch_inventory_data: BatchInventoryData): function sign_off_batch_inventory (line 1257) | def sign_off_batch_inventory( function undo_sign_off_batch_inventory (line 1275) | def undo_sign_off_batch_inventory( function download_batch_inventory_ballot_manifest (line 1290) | def download_batch_inventory_ballot_manifest( function download_batch_inventory_batch_tallies (line 1338) | def download_batch_inventory_batch_tallies( FILE: server/api/batch_tallies.py function construct_contest_choice_csv_headers (line 51) | def construct_contest_choice_csv_headers( function process_batch_tallies_file (line 71) | def process_batch_tallies_file( function validate_batch_tallies_upload (line 194) | def validate_batch_tallies_upload(election: Election, jurisdiction: Juri... function clear_batch_tallies_data (line 214) | def clear_batch_tallies_data(jurisdiction: Jurisdiction): function reprocess_batch_tallies_file_if_uploaded (line 218) | def reprocess_batch_tallies_file_if_uploaded( function start_upload_for_batch_tallies (line 241) | def start_upload_for_batch_tallies( function complete_upload_for_batch_tallies (line 265) | def complete_upload_for_batch_tallies( function get_batch_tallies (line 304) | def get_batch_tallies(election: Election, jurisdiction: Jurisdiction): function download_batch_tallies_file (line 316) | def download_batch_tallies_file( function clear_batch_tallies (line 334) | def clear_batch_tallies( function download_batch_tallies_template_csv (line 354) | def download_batch_tallies_template_csv(election: Election, jurisdiction... function download_batch_tallies_summed_by_jurisdiction_csv (line 382) | def download_batch_tallies_summed_by_jurisdiction_csv(election: Election): FILE: server/api/batches.py function replace_combined_batches_with_representative_batches (line 27) | def replace_combined_batches_with_representative_batches( function already_audited_batches (line 48) | def already_audited_batches(jurisdiction: Jurisdiction, round: Round) ->... function get_batch_retrieval_list (line 65) | def get_batch_retrieval_list( function serialize_batch (line 92) | def serialize_batch(batch: Batch) -> JSONDict: function construct_batch_last_edited_by_string (line 111) | def construct_batch_last_edited_by_string(batch: Batch) -> str | None: function list_batches_for_jurisdiction (line 135) | def list_batches_for_jurisdiction( function validate_batch_results (line 191) | def validate_batch_results( function record_batch_results (line 270) | def record_batch_results( function finalize_batch_results (line 348) | def finalize_batch_results( function unfinalize_batch_results (line 398) | def unfinalize_batch_results( FILE: server/api/contests.py function serialize_contest (line 110) | def serialize_contest(contest: Contest) -> JSONDict: function deserialize_contest_choice (line 201) | def deserialize_contest_choice( function deserialize_contest (line 212) | def deserialize_contest(contest: JSONDict, election_id: str) -> Contest: function validate_contests (line 237) | def validate_contests(contests: list[JSONDict], election: Election): function set_contest_metadata (line 281) | def set_contest_metadata(election: Election): function should_reprocess_batch_tallies (line 301) | def should_reprocess_batch_tallies( function create_or_update_all_contests (line 333) | def create_or_update_all_contests(election: Election): function list_contests (line 384) | def list_contests(election: Election): function list_jurisdictions_contests (line 395) | def list_jurisdictions_contests( function list_audit_board_contests (line 408) | def list_audit_board_contests( function put_contest_name_standardizations (line 459) | def put_contest_name_standardizations(election: Election): function get_contest_name_standardizations (line 482) | def get_contest_name_standardizations(election: Election): function put_contest_choice_name_standardizations (line 531) | def put_contest_choice_name_standardizations(election: Election): # pra... function get_contest_choice_name_standardizations (line 559) | def get_contest_choice_name_standardizations(election: Election): # pra... FILE: server/api/cvrs.py function peek (line 78) | def peek(iterator: Iterator[T]) -> tuple[T, Iterator[T]]: class CvrChoiceMetadata (line 83) | class CvrChoiceMetadata(TypedDict): class CvrContestMetadata (line 88) | class CvrContestMetadata(TypedDict): function validate_uploaded_cvrs (line 99) | def validate_uploaded_cvrs(contest: Contest): function are_uploaded_cvrs_valid (line 123) | def are_uploaded_cvrs_valid(contest: Contest): function cvr_contests_metadata (line 135) | def cvr_contests_metadata( function set_total_ballots_from_cvrs (line 205) | def set_total_ballots_from_cvrs(contest: Contest): function set_contest_metadata_from_cvrs (line 218) | def set_contest_metadata_from_cvrs(contest: Contest): function hybrid_contest_choice_vote_counts (line 253) | def hybrid_contest_choice_vote_counts( function csv_reader_for_cvr (line 277) | def csv_reader_for_cvr(cvr_file: BinaryIO) -> CSVIterator: function parse_clearballot_cvrs (line 284) | def parse_clearballot_cvrs( function parse_dominion_cvrs (line 383) | def parse_dominion_cvrs( class EssCvrFiles (line 528) | class EssCvrFiles(TypedDict): function separate_ess_cvr_and_ballots_files (line 534) | def separate_ess_cvr_and_ballots_files( function read_ess_ballots_file (line 601) | def read_ess_ballots_file( function parse_ess_cvrs (line 627) | def parse_ess_cvrs( function parse_scanned_ballot_information_file (line 969) | def parse_scanned_ballot_information_file( function parse_hart_cvrs (line 1030) | def parse_hart_cvrs( function process_cvr_file (line 1266) | def process_cvr_file( function validate_cvr_upload (line 1488) | def validate_cvr_upload( function clear_cvr_contests_metadata (line 1506) | def clear_cvr_contests_metadata(jurisdiction: Jurisdiction): function finalize_cvr_upload (line 1510) | def finalize_cvr_upload( function clear_cvr_ballots (line 1532) | def clear_cvr_ballots(election_id: str, jurisdiction_id: str): function get_cvrs (line 1550) | def get_cvrs(election: Election, jurisdiction: Jurisdiction): function start_upload_for_cvrs (line 1563) | def start_upload_for_cvrs(election: Election, jurisdiction: Jurisdiction): function complete_upload_for_cvrs (line 1588) | def complete_upload_for_cvrs(election: Election, jurisdiction: Jurisdict... function download_cvr_file (line 1618) | def download_cvr_file( function clear_contests_total_ballots_cast (line 1630) | def clear_contests_total_ballots_cast(election: Election): function clear_cvrs (line 1640) | def clear_cvrs( FILE: server/api/discrepancies.py function get_discrepancies_by_jurisdiction (line 39) | def get_discrepancies_by_jurisdiction(election: Election): function get_batch_comparison_discrepancies_by_jurisdiction (line 64) | def get_batch_comparison_discrepancies_by_jurisdiction( function show_batch_comparison_discrepancies_by_jurisdiction (line 168) | def show_batch_comparison_discrepancies_by_jurisdiction( function get_ballot_comparison_discrepancies_by_jurisdiction (line 190) | def get_ballot_comparison_discrepancies_by_jurisdiction( function show_ballot_comparison_discrepancies_by_jurisdiction (line 269) | def show_ballot_comparison_discrepancies_by_jurisdiction( FILE: server/api/election_settings.py function serialize_election_settings (line 43) | def serialize_election_settings(election: Election) -> JSONDict: function get_election_settings (line 58) | def get_election_settings(election: Election): function get_jurisdiction_election_settings (line 66) | def get_jurisdiction_election_settings( function validate_election_settings (line 73) | def validate_election_settings(settings: JSONDict, election: Election): function put_election_settings (line 82) | def put_election_settings(election: Election): FILE: server/api/elections.py function validate_new_election (line 47) | def validate_new_election(election: JSONDict): function create_election (line 82) | def create_election(): function delete_election (line 122) | def delete_election(election: Election): function list_organizations_and_elections (line 135) | def list_organizations_and_elections(audit_admin_id: str): FILE: server/api/full_hand_tally.py class BatchType (line 18) | class BatchType(str, enum.Enum): function validate_full_hand_tally_batch_result_request (line 50) | def validate_full_hand_tally_batch_result_request( function validate_full_hand_tally_batch_result (line 89) | def validate_full_hand_tally_batch_result( function serialize_full_hand_tally_batch_results (line 107) | def serialize_full_hand_tally_batch_results( function add_full_hand_tally_batch_result (line 139) | def add_full_hand_tally_batch_result( function update_full_hand_tally_batch_result (line 173) | def update_full_hand_tally_batch_result( function delete_full_hand_tally_batch_result (line 216) | def delete_full_hand_tally_batch_result( function finalize_full_hand_tally_batch_results (line 238) | def finalize_full_hand_tally_batch_results( function unfinalize_full_hand_tally_batch_results (line 278) | def unfinalize_full_hand_tally_batch_results( function get_full_hand_tally_batch_results (line 306) | def get_full_hand_tally_batch_results( FILE: server/api/jurisdictions.py function process_jurisdictions_file (line 66) | def process_jurisdictions_file(election_id: str): function serialize_jurisdiction (line 142) | def serialize_jurisdiction( class JurisdictionStatus (line 226) | class JurisdictionStatus(str, enum.Enum): function round_status_by_jurisdiction (line 232) | def round_status_by_jurisdiction( class JurisdictionAuditBoardStatus (line 244) | class JurisdictionAuditBoardStatus(str, enum.Enum): function jurisdiction_audit_board_status (line 250) | def jurisdiction_audit_board_status( function ballot_round_status (line 278) | def ballot_round_status(election: Election, round: Round) -> dict[str, J... function batch_round_status (line 451) | def batch_round_status(election: Election, round: Round) -> dict[str, JS... function get_last_login_by_jurisdiction (line 537) | def get_last_login_by_jurisdiction(election: Election): function list_jurisdictions (line 575) | def list_jurisdictions(election: Election): function get_jurisdictions_file (line 599) | def get_jurisdictions_file(election: Election): function download_jurisdictions_file (line 608) | def download_jurisdictions_file(election: Election): function start_upload_for_jurisdictions_file (line 626) | def start_upload_for_jurisdictions_file(election: Election): function complete_upload_for_jurisdictions_file (line 642) | def complete_upload_for_jurisdictions_file(election: Election): FILE: server/api/offline_results.py function validate_offline_results (line 26) | def validate_offline_results( function record_offline_results (line 93) | def record_offline_results( function serialize_results (line 133) | def serialize_results(round: Round, results: list[JurisdictionResult]) -... function get_offline_results (line 158) | def get_offline_results( FILE: server/api/public.py function public_compute_sample_sizes (line 67) | def public_compute_sample_sizes(): function parse_compute_sample_sizes_input (line 87) | def parse_compute_sample_sizes_input( function compute_ballot_comparison_sample_size (line 121) | def compute_ballot_comparison_sample_size( function compute_ballot_polling_sample_size (line 128) | def compute_ballot_polling_sample_size( function compute_batch_comparison_sample_size (line 140) | def compute_batch_comparison_sample_size( function upload_file_to_local_filesystem (line 159) | def upload_file_to_local_filesystem(): FILE: server/api/reports.py function pretty_affiliation (line 41) | def pretty_affiliation(affiliation: str | None) -> str: function pretty_boolean (line 52) | def pretty_boolean(boolean: bool) -> str: function pretty_targeted (line 56) | def pretty_targeted(is_targeted: bool) -> str: function pretty_pvalue (line 60) | def pretty_pvalue(value: float) -> str: function pretty_ballot_ticket_numbers (line 79) | def pretty_ballot_ticket_numbers( function pretty_batch_ticket_numbers_for_contest (line 103) | def pretty_batch_ticket_numbers_for_contest( function pretty_batch_ticket_numbers (line 119) | def pretty_batch_ticket_numbers( function pretty_ballot_interpretation (line 132) | def pretty_ballot_interpretation( function pretty_cvr_interpretation (line 165) | def pretty_cvr_interpretation( function add_sign (line 190) | def add_sign(value: int) -> str: function pretty_vote_deltas (line 194) | def pretty_vote_deltas( function pretty_discrepancy (line 211) | def pretty_discrepancy( function pretty_choice_votes (line 221) | def pretty_choice_votes( function heading (line 234) | def heading(heading: str): function election_info_rows (line 238) | def election_info_rows(election: Election): function contest_rows (line 246) | def contest_rows(election: Election): function contest_name_standardization_rows (line 328) | def contest_name_standardization_rows(election: Election): function audit_settings_rows (line 349) | def audit_settings_rows(election: Election): function audit_board_rows (line 371) | def audit_board_rows(election: Election): function round_rows (line 400) | def round_rows(election: Election): function full_hand_tally_result_rows (line 567) | def full_hand_tally_result_rows( function sampled_ballot_rows (line 609) | def sampled_ballot_rows(election: Election, jurisdiction: Jurisdiction |... function sampled_batch_rows (line 851) | def sampled_batch_rows(election: Election, jurisdiction: Jurisdiction | ... function audit_admin_audit_report (line 1142) | def audit_admin_audit_report(election: Election): function jursdiction_admin_audit_report (line 1180) | def jursdiction_admin_audit_report(election: Election, jurisdiction: Jur... function audit_admin_discrepancy_report (line 1204) | def audit_admin_discrepancy_report(election: Election): FILE: server/api/rounds.py function is_round_ready_to_finish (line 60) | def is_round_ready_to_finish(election: Election, round: Round) -> bool: function is_audit_complete (line 173) | def is_audit_complete(round: Round | None): function count_audited_votes (line 187) | def count_audited_votes(election: Election, round: Round): function calculate_risk_measurements (line 278) | def calculate_risk_measurements(election: Election, round: Round): function draw_sample (line 326) | def draw_sample(round_id: str, election_id: str): function draw_sample_batches (line 354) | def draw_sample_batches( function draw_sample_ballots (line 370) | def draw_sample_ballots( function create_selected_sample_sizes_schema (line 424) | def create_selected_sample_sizes_schema(audit_type: AuditType): function create_round_schema (line 454) | def create_round_schema(audit_type: AuditType): function validate_round (line 467) | def validate_round(round: dict, election: Election): function validate_sample_size (line 479) | def validate_sample_size(round: dict, election: Election): function delete_round_and_corresponding_sampled_ballots (line 543) | def delete_round_and_corresponding_sampled_ballots(round: Round): function create_round (line 564) | def create_round(election: Election): function finish_round (line 622) | def finish_round(election: Election): function serialize_round (line 650) | def serialize_round(round: Round) -> dict: function list_rounds_audit_admin (line 665) | def list_rounds_audit_admin(election: Election): function list_rounds_jurisdiction_admin (line 677) | def list_rounds_jurisdiction_admin(election: Election, jurisdiction: Jur... function undo_round_start (line 683) | def undo_round_start(election: Election): FILE: server/api/sample_preview.py function compute_sample_preview (line 27) | def compute_sample_preview(election_id: str, sample_sizes: dict[str, Sam... function create_sample_preview_schema (line 90) | def create_sample_preview_schema(audit_type: AuditType): function start_computing_sample_preview (line 101) | def start_computing_sample_preview(election: Election): function get_sample_preview (line 124) | def get_sample_preview(election: Election): FILE: server/api/sample_sizes.py function validate_all_manifests_uploaded (line 34) | def validate_all_manifests_uploaded(contest: Contest): function validate_batch_tallies (line 39) | def validate_batch_tallies(contest): function validate_hybrid_manifests_and_cvrs (line 61) | def validate_hybrid_manifests_and_cvrs(contest: Contest): function sample_size_options (line 122) | def sample_size_options(election: Election) -> dict[str, dict[str, Sampl... function next_round_sample_size_options (line 224) | def next_round_sample_size_options(election_id: str): function autoselect_sample_size (line 236) | def autoselect_sample_size(options: dict[str, SampleSizeOption], audit_t... function serialize_sample_size_options (line 249) | def serialize_sample_size_options(sample_size_options): function get_sample_sizes (line 260) | def get_sample_sizes(election: Election, round_num: int): FILE: server/api/shared.py function get_current_round (line 26) | def get_current_round(election: Election) -> Round | None: function get_previous_round (line 32) | def get_previous_round(election: Election, round: Round) -> Round | None: function contest_results_by_round (line 38) | def contest_results_by_round( function active_targeted_contests (line 51) | def active_targeted_contests(election: Election) -> list[Contest]: function samples_not_found_by_round (line 62) | def samples_not_found_by_round(contest: Contest) -> dict[str, int]: function batch_tallies (line 88) | def batch_tallies(contest: Contest) -> BatchTallies: class CombinedBatch (line 98) | class CombinedBatch(TypedDict): function combined_batch_representative (line 104) | def combined_batch_representative(sub_batches: list[Batch]) -> Batch: function group_combined_batches (line 120) | def group_combined_batches(all_sub_batches: list[Batch]) -> list[Combine... function combined_batch_keys (line 133) | def combined_batch_keys(election_id: str) -> list[set[sampler.BatchKey]]: function sampled_batch_results (line 148) | def sampled_batch_results( function sampled_batches_by_ticket_number (line 236) | def sampled_batches_by_ticket_number(contest: Contest) -> dict[str, samp... function round_sizes (line 257) | def round_sizes(contest: Contest) -> ballot_polling_types.BALLOT_POLLING... function cvrs_for_contest (line 296) | def cvrs_for_contest(contest: Contest) -> sampler_contest.CVRS: function sampled_ballot_interpretations_to_cvrs (line 356) | def sampled_ballot_interpretations_to_cvrs( function hybrid_contest_strata (line 443) | def hybrid_contest_strata( function ballot_vote_deltas (line 515) | def ballot_vote_deltas( function batch_vote_deltas (line 551) | def batch_vote_deltas( function full_hand_tally_sizes (line 568) | def full_hand_tally_sizes(election: Election): function needs_full_hand_tally (line 584) | def needs_full_hand_tally(round: Round, election: Election) -> bool: function is_full_hand_tally (line 607) | def is_full_hand_tally(round: Round, election: Election): class SampleSize (line 615) | class SampleSize(TypedDict): class BallotDraw (line 623) | class BallotDraw(TypedDict): class BatchDraw (line 630) | class BatchDraw(TypedDict): function compute_sample_batches_for_contest (line 636) | def compute_sample_batches_for_contest( function compute_sample_batches (line 810) | def compute_sample_batches( function compute_sample_ballots (line 825) | def compute_sample_ballots( FILE: server/api/standardized_contests.py function process_standardized_contests_file (line 53) | def process_standardized_contests_file(election_id: str): function start_upload_for_standardized_contests_file (line 185) | def start_upload_for_standardized_contests_file(election: Election): function complete_upload_for_standardized_contests_file (line 202) | def complete_upload_for_standardized_contests_file(election: Election): function get_standardized_contests_file (line 239) | def get_standardized_contests_file(election: Election): function get_standardized_contests (line 248) | def get_standardized_contests(election: Election): function download_standardized_contests_file (line 254) | def download_standardized_contests_file(election: Election): FILE: server/api/support.py function get_current_round_info (line 45) | def get_current_round_info(election): function auth0_get_token (line 56) | def auth0_get_token() -> str: function auth0_create_audit_admin (line 65) | def auth0_create_audit_admin(email: str) -> str | None: function list_active_elections (line 92) | def list_active_elections(): function list_organizations (line 130) | def list_organizations(): function list_users_by_organization (line 142) | def list_users_by_organization(): function create_organization (line 208) | def create_organization(): function get_organization (line 223) | def get_organization(organization_id: str): function delete_organization (line 255) | def delete_organization(organization_id: str): function update_organization (line 270) | def update_organization(organization_id: str): function get_election (line 293) | def get_election(election_id: str): function permanently_delete_election (line 315) | def permanently_delete_election(election_id: str): function create_audit_admin (line 353) | def create_audit_admin(organization_id: str): function remove_audit_admin_from_org (line 388) | def remove_audit_admin_from_org(organization_id: str, audit_admin_id: str): function get_jurisdiction (line 408) | def get_jurisdiction(jurisdiction_id: str): function clear_jurisdiction_audit_boards (line 468) | def clear_jurisdiction_audit_boards(jurisdiction_id: str): function clear_offline_results (line 497) | def clear_offline_results(jurisdiction_id: str): function log_in_as_audit_admin (line 528) | def log_in_as_audit_admin(email: str): function log_in_as_jurisdiction_admin (line 538) | def log_in_as_jurisdiction_admin(email: str): function log_in_to_audit_as_audit_admin (line 550) | def log_in_to_audit_as_audit_admin(election_id: str): function log_in_to_audit_as_jurisdiction_admin (line 565) | def log_in_to_audit_as_jurisdiction_admin(jurisdiction_id: str): function support_undo_round_start (line 585) | def support_undo_round_start(round_id: str): function reopen_current_round (line 606) | def reopen_current_round(election_id: str): function list_jurisdiction_batches (line 630) | def list_jurisdiction_batches(jurisdiction_id: str): function create_combined_batch (line 677) | def create_combined_batch(jurisdiction_id: str): function delete_combined_batch (line 719) | def delete_combined_batch(jurisdiction_id: str, combined_batch_name: str): FILE: server/app.py function shutdown_session (line 60) | def shutdown_session(exception=None): FILE: server/audit_math/ballot_polling.py function get_sample_size (line 16) | def get_sample_size( function compute_risk (line 53) | def compute_risk( FILE: server/audit_math/ballot_polling_types.py class SampleSizeOption (line 4) | class SampleSizeOption(TypedDict): FILE: server/audit_math/bravo.py function get_expected_sample_size (line 24) | def get_expected_sample_size( function get_test_statistics (line 115) | def get_test_statistics( function bravo_sample_sizes (line 169) | def bravo_sample_sizes( function expected_prob (line 274) | def expected_prob( function compute_cumulative_sample (line 330) | def compute_cumulative_sample(sample_results): function get_sample_size (line 341) | def get_sample_size( function compute_risk (line 483) | def compute_risk( function is_tie (line 539) | def is_tie(contest: Contest) -> bool: function is_landslide (line 551) | def is_landslide(contest: Contest) -> bool: FILE: server/audit_math/macro.py class BatchError (line 25) | class BatchError(TypedDict): function compute_unauditable_ballots (line 30) | def compute_unauditable_ballots( function compute_error (line 54) | def compute_error( function compute_max_error (line 117) | def compute_max_error( function compute_U (line 175) | def compute_U( function get_sample_sizes (line 209) | def get_sample_sizes( function compute_risk (line 287) | def compute_risk( FILE: server/audit_math/minerva.py function make_arlo_contest (line 25) | def make_arlo_contest(tally, num_winners=1, votes_allowed=1): function make_sample_results (line 44) | def make_sample_results( function make_athena_audit (line 59) | def make_athena_audit(arlo_contest, alpha): function get_sample_size (line 92) | def get_sample_size( function collect_risks (line 167) | def collect_risks( function compute_risk (line 215) | def compute_risk( FILE: server/audit_math/providence.py function make_r2b2_contest (line 22) | def make_r2b2_contest(arlo_contest: Contest): function make_providence_audit (line 42) | def make_providence_audit(arlo_contest: Contest, alpha: float): function _run_providence_audit (line 50) | def _run_providence_audit( function get_sample_size (line 83) | def get_sample_size( function compute_risk (line 118) | def compute_risk( FILE: server/audit_math/raire.py function make_neb_matrix (line 20) | def make_neb_matrix(contest: Contest, cvrs: CVRS, asn_func) -> NEBMatrix: function make_frontier (line 58) | def make_frontier( function find_assertions (line 90) | def find_assertions( function compute_raire_assertions (line 193) | def compute_raire_assertions( FILE: server/audit_math/raire_utils.py class SampleCVR (line 19) | class SampleCVR(TypedDict): function ranking (line 27) | def ranking(cand: str, ballot: dict[str, int]) -> int: function vote_for_cand (line 43) | def vote_for_cand( class RaireAssertion (line 81) | class RaireAssertion: method __init__ (line 82) | def __init__(self, contest: str, winner: str, loser: str): method is_vote_for_winner (line 106) | def is_vote_for_winner(self, cvr: CVR): method is_vote_for_loser (line 116) | def is_vote_for_loser(self, cvr: CVR): method subsumes (line 126) | def subsumes(self, other): method __eq__ (line 140) | def __eq__(self, other): method __lt__ (line 147) | def __lt__(self, other): method __gt__ (line 150) | def __gt__(self, other): method __repr__ (line 153) | def __repr__(self): class NEBAssertion (line 157) | class NEBAssertion(RaireAssertion): method is_vote_for_winner (line 174) | def is_vote_for_winner(self, cvr: CVR) -> Literal[0, 1]: method is_vote_for_loser (line 181) | def is_vote_for_loser(self, cvr: CVR) -> Literal[0, 1]: method subsumes (line 189) | def subsumes(self, other: Type[RaireAssertion]) -> bool: method __eq__ (line 224) | def __eq__(self, other) -> bool: method __hash__ (line 232) | def __hash__(self) -> int: method __repr__ (line 235) | def __repr__(self) -> str: class NENAssertion (line 239) | class NENAssertion(RaireAssertion): method __init__ (line 256) | def __init__(self, contest: str, winner: str, loser: str, eliminated: ... method is_vote_for_winner (line 261) | def is_vote_for_winner(self, cvr: CVR) -> Literal[0, 1]: method is_vote_for_loser (line 267) | def is_vote_for_loser(self, cvr: CVR) -> Literal[0, 1]: method subsumes (line 273) | def subsumes(self, other: RaireAssertion) -> bool: method __eq__ (line 288) | def __eq__(self, other) -> bool: method __hash__ (line 297) | def __hash__(self) -> int: method __repr__ (line 300) | def __repr__(self) -> str: class RaireNode (line 306) | class RaireNode: method __init__ (line 307) | def __init__(self, tail: list[str]): method is_descendent_of (line 327) | def is_descendent_of(self, node: RaireNode) -> bool: method __eq__ (line 348) | def __eq__(self, other): method __repr__ (line 356) | def __repr__(self): class RaireFrontier (line 360) | class RaireFrontier: method __init__ (line 361) | def __init__(self): method insert_node (line 364) | def insert_node(self, node: RaireNode): method replace_descendents (line 395) | def replace_descendents(self, node: RaireNode): method __eq__ (line 408) | def __eq__(self, other): method __repr__ (line 411) | def __repr__(self): function find_best_audit (line 415) | def find_best_audit( function perform_dive (line 513) | def perform_dive( FILE: server/audit_math/sampler.py function draw_sample (line 13) | def draw_sample( function draw_ppeb_sample (line 72) | def draw_ppeb_sample( FILE: server/audit_math/sampler_contest.py function from_db_contest (line 10) | def from_db_contest(db_contest): class Contest (line 35) | class Contest: method __init__ (line 55) | def __init__(self, name: str, contest_info_dict: dict[str, int]): method __repr__ (line 162) | def __repr__(self) -> str: class SampleCVR (line 176) | class SampleCVR(TypedDict): FILE: server/audit_math/suite.py class HybridPair (line 25) | class HybridPair(NamedTuple): class BallotPollingStratum (line 34) | class BallotPollingStratum: method __init__ (line 49) | def __init__( method compute_pvalue (line 86) | def compute_pvalue( class MisstatementCounts (line 176) | class MisstatementCounts(TypedDict): class BallotComparisonStratum (line 187) | class BallotComparisonStratum: method __init__ (line 200) | def __init__( method compute_pvalue (line 229) | def compute_pvalue(self, reported_margin, winner, loser, null_lambda) ... function maximize_fisher_combined_pvalue (line 274) | def maximize_fisher_combined_pvalue( function try_n (line 426) | def try_n( function get_sample_size_for_wl_pair (line 562) | def get_sample_size_for_wl_pair( function get_sample_size (line 633) | def get_sample_size( function compute_risk (line 692) | def compute_risk( function misstatements (line 751) | def misstatements( FILE: server/audit_math/supersimple.py class Discrepancy (line 20) | class Discrepancy(TypedDict): function nMin (line 25) | def nMin( function compute_discrepancies (line 48) | def compute_discrepancies( function discrepancy (line 114) | def discrepancy( function get_sample_sizes (line 170) | def get_sample_sizes( function compute_risk (line 244) | def compute_risk( FILE: server/audit_math/supersimple_raire.py function nMin (line 20) | def nMin( function compute_discrepancies (line 43) | def compute_discrepancies( function normalize_cvr (line 102) | def normalize_cvr(cvr: CVR) -> CVR: function discrepancy (line 148) | def discrepancy( function get_sample_sizes (line 179) | def get_sample_sizes( function compute_margin_for_assertion (line 267) | def compute_margin_for_assertion(cvrs: CVRS, assertion: RaireAssertion) ... function compute_risk (line 281) | def compute_risk( FILE: server/auth/auth_helpers.py class UserType (line 14) | class UserType(str, enum.Enum): function set_loggedin_user (line 41) | def set_loggedin_user( function get_loggedin_user (line 52) | def get_loggedin_user(session) -> tuple[UserType, str] | tuple[None, None]: function clear_loggedin_user (line 58) | def clear_loggedin_user(session): function check_session_expiration (line 62) | def check_session_expiration(session): function set_support_user (line 89) | def set_support_user(session: SessionMixin, email: str): function clear_support_user (line 95) | def clear_support_user(session: SessionMixin): function get_support_user (line 99) | def get_support_user(session: SessionMixin) -> str | None: function find_or_404 (line 105) | def find_or_404(query: Query): function check_access (line 112) | def check_access( function restrict_access (line 164) | def restrict_access(user_types: list[UserType]): function restrict_access_support (line 235) | def restrict_access_support(route: Callable): function allow_public_access (line 252) | def allow_public_access(route: Callable): function allow_any_logged_in_user_access (line 266) | def allow_any_logged_in_user_access(route: Callable): FILE: server/auth/auth_routes.py function serialize_election (line 80) | def serialize_election(election): function api_me (line 94) | def api_me(): function logout (line 166) | def logout(): function support_logout (line 175) | def support_logout(): function support_login (line 183) | def support_login(): function support_login_callback (line 190) | def support_login_callback(): function auditadmin_login (line 209) | def auditadmin_login(): function auditadmin_login_callback (line 216) | def auditadmin_login_callback(): function is_code_expired (line 229) | def is_code_expired(timestamp: datetime): function jurisdiction_admin_generate_code (line 235) | def jurisdiction_admin_generate_code(): function record_login (line 299) | def record_login(user: User, error: str | None = None): function jurisdiction_admin_login (line 322) | def jurisdiction_admin_login(): function auditboard_passphrase (line 393) | def auditboard_passphrase(passphrase: str): function tally_entry_passphrase (line 410) | def tally_entry_passphrase(passphrase: str): function tally_entry_user_generate_code (line 436) | def tally_entry_user_generate_code(): function tally_entry_jurisdiction_generate_passphrase (line 477) | def tally_entry_jurisdiction_generate_passphrase( function tally_entry_jurisdiction_status (line 498) | def tally_entry_jurisdiction_status( function tally_entry_jurisdiction_confirm_login_code (line 528) | def tally_entry_jurisdiction_confirm_login_code( function tally_entry_jurisdiction_reject_request (line 552) | def tally_entry_jurisdiction_reject_request( function handle_oauth_error (line 568) | def handle_oauth_error(error): FILE: server/config.py function read_env_var (line 7) | def read_env_var( function parse_bool (line 18) | def parse_bool(value: str) -> bool: FILE: server/database.py class Base (line 24) | class Base: method __tablename__ (line 28) | def __tablename__(cls): function init_db (line 34) | def init_db(engine=engine): function reset_db (line 40) | def reset_db(): function clear_db (line 47) | def clear_db(): # pragma: no cover FILE: server/errors.py function handle_validation_error (line 15) | def handle_validation_error(error): function handle_400 (line 23) | def handle_400(error): function handle_401 (line 31) | def handle_401(error): function handle_409 (line 39) | def handle_409(error): function handle_403 (line 47) | def handle_403(error): function handle_500 (line 55) | def handle_500(error): FILE: server/feature_flags.py function is_enabled_sample_extra_batches_by_counting_group (line 4) | def is_enabled_sample_extra_batches_by_counting_group(election: Election): function is_enabled_sample_extra_batches_to_ensure_one_per_jurisdiction (line 16) | def is_enabled_sample_extra_batches_to_ensure_one_per_jurisdiction(elect... function is_enabled_automatically_end_audit_after_one_round (line 23) | def is_enabled_automatically_end_audit_after_one_round(election: Election): FILE: server/migrations/env.py function run_migrations_offline (line 41) | def run_migrations_offline(): # pragma: no cover function run_migrations_online (line 68) | def run_migrations_online(): FILE: server/migrations/versions/07859b6b370b_json_sample_sizes.py function upgrade (line 20) | def upgrade(): function downgrade (line 29) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/11e35dd1c515_batch_tallies_file.py function upgrade (line 20) | def upgrade(): function downgrade (line 36) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/141edd274627_fix_null_round_contest_sample_size.py function upgrade (line 19) | def upgrade(): function downgrade (line 35) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/22c615fe67ab_jurisdictionresult.py function upgrade (line 20) | def upgrade(): function downgrade (line 74) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/244744c21027_tally_entry_accounts.py function upgrade (line 20) | def upgrade(): function downgrade (line 60) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/266fba5a5c8a_rename_offlinebatchresult_to_.py function upgrade (line 18) | def upgrade(): function downgrade (line 60) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/2aeb618b9438_jurisdiction_cvr_file_type.py function upgrade (line 20) | def upgrade(): function downgrade (line 35) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/30f47ec7308c_batchresultsfinalized.py function upgrade (line 20) | def upgrade(): function downgrade (line 45) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/342f43b1c9d9_batch_has_cvrs.py function upgrade (line 20) | def upgrade(): function downgrade (line 24) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/34824a2d1ba8_batch_combined_batch_name.py function upgrade (line 20) | def upgrade(): function downgrade (line 26) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/34939a0c9f5c_ballotinterpretation_has_invalid_write_in.py function upgrade (line 20) | def upgrade(): function downgrade (line 29) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/3edc260ab0b1_audittype_ballot_comparison.py function upgrade (line 20) | def upgrade(): function downgrade (line 39) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/3efe804f6952_remove_offlinebatchresultchangelog.py function upgrade (line 18) | def upgrade(): function downgrade (line 22) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/496ee3db6da8_cvrfiletype_hart.py function upgrade (line 20) | def upgrade(): function downgrade (line 39) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/4aa612e28c2e_delete_auditboard_without_cascading.py function upgrade (line 19) | def upgrade(): function downgrade (line 42) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/4aec6c8a419f_backgroundtask_lock_key.py function upgrade (line 20) | def upgrade(): function downgrade (line 26) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/4b1bf0241301_add_batch_file_bundle_table.py function upgrade (line 20) | def upgrade(): function downgrade (line 36) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/5004a93f75d8_batchresulttallysheet.py function upgrade (line 21) | def upgrade(): function downgrade (line 85) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/5238d088cf62_offlinebatchresultchangelog.py function upgrade (line 20) | def upgrade(): function downgrade (line 50) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/593823da406d_fix_delete_cascades.py function upgrade (line 18) | def upgrade(): function downgrade (line 47) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/5acbd2f95b9f_standardized_contests_file.py function upgrade (line 20) | def upgrade(): function downgrade (line 47) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/5b7164faeda5_sampledballotdraw_contest_id.py function upgrade (line 20) | def upgrade(): function downgrade (line 60) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/5bb25bdd56b7_hybrid_audit_type.py function upgrade (line 20) | def upgrade(): function downgrade (line 58) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/6a4dc1ef268c_add_a_sessions_table_as_we_move_.py function upgrade (line 20) | def upgrade(): function downgrade (line 31) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/6bd43f181daa_add_auditmathtype.py function upgrade (line 28) | def upgrade(): function downgrade (line 45) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/6c256e8152f8_backgroundtask_worker_id.py function upgrade (line 20) | def upgrade(): function downgrade (line 26) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/74c579ae8555_batch_last_edited_by.py function upgrade (line 20) | def upgrade(): function downgrade (line 63) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/754cca3f4448_add_providence_to_auditmathtype.py function upgrade (line 28) | def upgrade(): function downgrade (line 45) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/7ca7a4b0bcc0_contest_pending_ballots.py function upgrade (line 20) | def upgrade(): function downgrade (line 24) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/7f86511c05e0_cvrs.py function upgrade (line 20) | def upgrade(): function downgrade (line 53) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/83bc53b14021_organization_default_state.py function upgrade (line 20) | def upgrade(): function downgrade (line 26) | def downgrade(): FILE: server/migrations/versions/8452f909a07e_jurisdiction_contest_choice_name_standardizations.py function upgrade (line 20) | def upgrade(): function downgrade (line 27) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/848293b46b37_batchinventorydata.py function upgrade (line 20) | def upgrade(): function downgrade (line 62) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/848ffc831a04_election_sample_preview.py function upgrade (line 20) | def upgrade(): function downgrade (line 36) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/8ab39ac619ed_activity_log.py function upgrade (line 20) | def upgrade(): function downgrade (line 39) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/8b6b89bfbc97_backgroundtask.py function backfill (line 21) | def backfill(): # pragma: no cover function upgrade (line 60) | def upgrade(): function downgrade (line 87) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/8bc5c2037187_adding_audit_math_type.py function upgrade (line 20) | def upgrade(): function downgrade (line 40) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/95660eea5c1c_offline_batch_results.py function upgrade (line 20) | def upgrade(): function downgrade (line 55) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/971d6d153879_background_task_progress.py function upgrade (line 20) | def upgrade(): function downgrade (line 29) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/9956d373c6b8_interpretation_contest_not_on_ballot.py function upgrade (line 20) | def upgrade(): function downgrade (line 39) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/9d9c4e058cb2_jurisdiction_contest_name_.py function upgrade (line 20) | def upgrade(): function downgrade (line 27) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/9ed660c31c0a_election_audit_type.py function upgrade (line 20) | def upgrade(): function downgrade (line 42) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/a3004ca81e25_sampledbatchdraw.py function upgrade (line 20) | def upgrade(): function downgrade (line 63) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/aa3978570981_batchresult.py function upgrade (line 20) | def upgrade(): function downgrade (line 48) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/b0b160c2f187_initial.py function upgrade (line 20) | def upgrade(): function downgrade (line 473) | def downgrade(): FILE: server/migrations/versions/b5fcf654c681_remove_single_jurisdiction_flow.py function upgrade (line 19) | def upgrade(): function downgrade (line 31) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/b91b345bf0a9_cvrballot_unique_constraint.py function upgrade (line 19) | def upgrade(): function downgrade (line 32) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/bc97ac0e8267_remove_file_contents.py function upgrade (line 20) | def upgrade(): function downgrade (line 27) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/c012fa6b13a9_sampledbatchdraw_contest_id.py function upgrade (line 20) | def upgrade(): function downgrade (line 56) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/c2b90f147183_organization_name_unique.py function upgrade (line 19) | def upgrade(): function downgrade (line 23) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/cb8de251c1a5_batchinventorydata_system_type.py function upgrade (line 20) | def upgrade(): function downgrade (line 35) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/cec7ecc73bd8_samplesizeoptions_table.py function upgrade (line 19) | def upgrade(): function downgrade (line 62) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/d0fc64ab8b98_on_delete_cleanup.py function upgrade (line 20) | def upgrade(): function downgrade (line 35) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/dd3f3330aee2_cvrfiletype_ess.py function upgrade (line 20) | def upgrade(): function downgrade (line 38) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/de96efe4d679_ja_login_code.py function upgrade (line 20) | def upgrade(): function downgrade (line 31) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/df1334fc5fe9_election_deleted_at.py function upgrade (line 20) | def upgrade(): function downgrade (line 24) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/df3c0681fad9_file_storage_path.py function upgrade (line 20) | def upgrade(): function downgrade (line 24) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/e372310f31c1_batch_container.py function upgrade (line 20) | def upgrade(): function downgrade (line 31) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/f400f19f7a35_file_background_task.py function backfill (line 21) | def backfill(): # pragma: no cover function upgrade (line 99) | def upgrade(): function downgrade (line 116) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/f44bbbb8b076_cvrballot_ballot_position_and_record_id.py function upgrade (line 20) | def upgrade(): function downgrade (line 26) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/f8e901e92f0a_background_sample_size_options.py function upgrade (line 20) | def upgrade(): function downgrade (line 38) | def downgrade(): # pragma: no cover FILE: server/migrations/versions/fa342e75506b_overvotes.py function upgrade (line 20) | def upgrade(): function downgrade (line 75) | def downgrade(): FILE: server/migrations/versions/fea3ed38fb6c_jurisdiction_expected_manifest_num_.py function upgrade (line 20) | def upgrade(): function downgrade (line 27) | def downgrade(): FILE: server/migrations/versions/fed66f26125e_remove_batch_comparison_audit_boards.py function upgrade (line 18) | def upgrade(): function downgrade (line 23) | def downgrade(): # pragma: no cover FILE: server/models.py class UTCDateTime (line 69) | class UTCDateTime(TypeDecorator): method process_bind_param (line 74) | def process_bind_param(self, value, dialect): method process_result_value (line 82) | def process_result_value(self, value, dialect): class BaseModel (line 86) | class BaseModel(Base): class WebSession (line 99) | class WebSession(BaseModel): class Organization (line 108) | class Organization(BaseModel): class AuditType (line 123) | class AuditType(str, enum.Enum): class AuditMathType (line 130) | class AuditMathType(str, enum.Enum): class Election (line 141) | class Election(BaseModel): class CvrFileType (line 234) | class CvrFileType(str, enum.Enum): class Jurisdiction (line 243) | class Jurisdiction(BaseModel): class User (line 333) | class User(BaseModel): method lowercase_email (line 354) | def lowercase_email(self, _key, email): class AuditAdministration (line 358) | class AuditAdministration(BaseModel): class JurisdictionAdministration (line 379) | class JurisdictionAdministration(BaseModel): class Batch (line 403) | class Batch(BaseModel): class Contest (line 468) | class Contest(BaseModel): class ContestChoice (line 512) | class ContestChoice(BaseModel): class Affiliation (line 552) | class Affiliation(str, enum.Enum): class AuditBoard (line 562) | class AuditBoard(BaseModel): class TallyEntryUser (line 598) | class TallyEntryUser(BaseModel): class SampleSizeOptions (line 621) | class SampleSizeOptions(BaseModel): class Round (line 636) | class Round(BaseModel): class BallotStatus (line 664) | class BallotStatus(str, enum.Enum): class SampledBallot (line 672) | class SampledBallot(BaseModel): class SampledBallotDraw (line 710) | class SampledBallotDraw(BaseModel): class Interpretation (line 735) | class Interpretation(str, enum.Enum): class BallotInterpretation (line 744) | class BallotInterpretation(BaseModel): class RoundContest (line 799) | class RoundContest(BaseModel): class RoundContestResult (line 826) | class RoundContestResult(BaseModel): class FullHandTallyBatchResult (line 858) | class FullHandTallyBatchResult(BaseModel): class JurisdictionResult (line 879) | class JurisdictionResult(BaseModel): class SampledBatchDraw (line 913) | class SampledBatchDraw(BaseModel): class BatchResultTallySheet (line 945) | class BatchResultTallySheet(BaseModel): class BatchResult (line 966) | class BatchResult(BaseModel): class BatchResultsFinalized (line 984) | class BatchResultsFinalized(BaseModel): class CvrBallot (line 999) | class CvrBallot(Base): class File (line 1025) | class File(BaseModel): method is_processing (line 1034) | def is_processing(self): class BackgroundTask (line 1040) | class BackgroundTask(BaseModel): class BatchFileBundle (line 1056) | class BatchFileBundle(BaseModel): class ActivityLogRecord (line 1080) | class ActivityLogRecord(Base): class BatchInventoryData (line 1092) | class BatchInventoryData(BaseModel): class ProcessingStatus (line 1126) | class ProcessingStatus(str, enum.Enum): class USState (line 1133) | class USState(str, enum.Enum): function get_or_404 (line 1194) | def get_or_404(model: Type[Base], primary_key: str): FILE: server/sentry.py function set_sentry_user (line 9) | def set_sentry_user(): function configure_sentry (line 21) | def configure_sentry(app: Flask | None = None): FILE: server/static.py function serve (line 14) | def serve(path="index.html"): FILE: server/tests/api/test_activity.py function test_list_activities (line 11) | def test_list_activities( function test_list_activities_wrong_org (line 155) | def test_list_activities_wrong_org( function test_list_activities_wrong_user_type (line 165) | def test_list_activities_wrong_user_type( function test_list_activities_not_logged_in (line 175) | def test_list_activities_not_logged_in(client: FlaskClient, org_id: str): function test_list_activities_logins (line 181) | def test_list_activities_logins( function test_file_upload_errors (line 290) | def test_file_upload_errors( FILE: server/tests/api/test_audit_boards.py function assert_ballots_got_assigned_correctly (line 16) | def assert_ballots_got_assigned_correctly( function test_audit_boards_list_empty (line 40) | def test_audit_boards_list_empty( function test_audit_boards_create_one (line 56) | def test_audit_boards_create_one( function test_audit_boards_list_one (line 90) | def test_audit_boards_list_one( function test_audit_boards_create_two (line 168) | def test_audit_boards_create_two( function test_audit_boards_list_two (line 202) | def test_audit_boards_list_two( function test_audit_boards_create_round_2 (line 288) | def test_audit_boards_create_round_2( function test_audit_boards_list_round_2 (line 326) | def test_audit_boards_list_round_2( function test_audit_boards_missing_field (line 373) | def test_audit_boards_missing_field( function test_audit_boards_duplicate_name (line 398) | def test_audit_boards_duplicate_name( function test_audit_boards_already_created (line 423) | def test_audit_boards_already_created( function test_audit_boards_wrong_round (line 455) | def test_audit_boards_wrong_round( function test_audit_boards_bad_round_id (line 481) | def test_audit_boards_bad_round_id( function test_audit_boards_set_members_valid (line 498) | def test_audit_boards_set_members_valid( function test_audit_boards_set_members_invalid (line 526) | def test_audit_boards_set_members_invalid( function set_up_audit_board (line 577) | def set_up_audit_board( function test_audit_boards_sign_off_happy_path (line 663) | def test_audit_boards_sign_off_happy_path( function test_count_audited_votes (line 775) | def test_count_audited_votes( function test_audit_boards_sign_off_missing_name (line 922) | def test_audit_boards_sign_off_missing_name( function test_audit_boards_sign_off_wrong_name (line 962) | def test_audit_boards_sign_off_wrong_name( function test_audit_boards_sign_off_before_finished (line 1003) | def test_audit_boards_sign_off_before_finished( function test_audit_board_only_one_member_sign_off_happy_path (line 1044) | def test_audit_board_only_one_member_sign_off_happy_path( function test_audit_board_only_one_member_sign_off_wrong_name (line 1072) | def test_audit_board_only_one_member_sign_off_wrong_name( function test_audit_boards_sign_off_whitespace (line 1108) | def test_audit_boards_sign_off_whitespace( function test_audit_board_human_order (line 1133) | def test_audit_board_human_order( function test_reopen_audit_board (line 1156) | def test_reopen_audit_board( function test_reopen_audit_board_error_cases (line 1191) | def test_reopen_audit_board_error_cases( FILE: server/tests/api/test_ballot_manifest.py function test_ballot_manifest_upload (line 9) | def test_ballot_manifest_upload( function test_ballot_manifest_clear (line 54) | def test_ballot_manifest_clear( function test_ballot_manifest_replace_as_audit_admin (line 88) | def test_ballot_manifest_replace_as_audit_admin( function test_ballot_manifest_upload_missing_file_path (line 137) | def test_ballot_manifest_upload_missing_file_path( function test_ballot_manifest_upload_batch_inventory_worksheet (line 158) | def test_ballot_manifest_upload_batch_inventory_worksheet( function test_ballot_manifest_upload_bad_csv (line 193) | def test_ballot_manifest_upload_bad_csv( function test_ballot_manifest_upload_missing_field (line 246) | def test_ballot_manifest_upload_missing_field( function test_ballot_manifest_upload_invalid_num_ballots (line 284) | def test_ballot_manifest_upload_invalid_num_ballots( function test_ballot_manifest_upload_duplicate_batch_name (line 319) | def test_ballot_manifest_upload_duplicate_batch_name( function test_ballot_manifest_get_upload_url_missing_file_type (line 353) | def test_ballot_manifest_get_upload_url_missing_file_type( function test_ballot_manifest_get_upload_url (line 373) | def test_ballot_manifest_get_upload_url( FILE: server/tests/api/test_ballots.py function test_ja_ballots_bad_round_id (line 14) | def test_ja_ballots_bad_round_id( function test_ja_ballots_round_1 (line 28) | def test_ja_ballots_round_1( function test_ja_ballots_before_audit_boards_set_up (line 142) | def test_ja_ballots_before_audit_boards_set_up( function test_ja_ballots_round_2 (line 176) | def test_ja_ballots_round_2( function test_ab_list_ballot_round_1 (line 229) | def test_ab_list_ballot_round_1( function test_ab_list_ballots_round_2 (line 341) | def test_ab_list_ballots_round_2( function test_ab_audit_ballot_not_found (line 414) | def test_ab_audit_ballot_not_found( function test_ab_audit_ballot_happy_path (line 430) | def test_ab_audit_ballot_happy_path( function test_ab_audit_ballot_overvote (line 576) | def test_ab_audit_ballot_overvote( function test_ab_audit_ballot_has_invalid_write_in (line 653) | def test_ab_audit_ballot_has_invalid_write_in( function test_ab_audit_ballot_wrong_audit_board (line 703) | def test_ab_audit_ballot_wrong_audit_board( function test_ab_audit_ballot_invalid (line 740) | def test_ab_audit_ballot_invalid( function test_ja_ballot_retrieval_list_bad_round_id (line 1121) | def test_ja_ballot_retrieval_list_bad_round_id( function test_ja_ballot_retrieval_list_before_audit_boards_set_up (line 1135) | def test_ja_ballot_retrieval_list_before_audit_boards_set_up( function test_ja_ballot_retrieval_list_round_1 (line 1157) | def test_ja_ballot_retrieval_list_round_1( function test_ja_ballot_retrieval_list_round_2 (line 1185) | def test_ja_ballot_retrieval_list_round_2( function test_ja_ballots_count (line 1213) | def test_ja_ballots_count( function test_ballots_human_sort_order (line 1230) | def test_ballots_human_sort_order( FILE: server/tests/api/test_batch_files.py function test_start_manifests_bundle_generation (line 12) | def test_start_manifests_bundle_generation( function test_start_candidate_totals_bundle_generation (line 97) | def test_start_candidate_totals_bundle_generation( function test_batch_files_endpoints_require_audit_admin (line 223) | def test_batch_files_endpoints_require_audit_admin( function test_empty_bundle_when_no_files_uploaded (line 238) | def test_empty_bundle_when_no_files_uploaded( function test_bundle_status_with_error (line 273) | def test_bundle_status_with_error( function test_direct_download_endpoint (line 324) | def test_direct_download_endpoint( function test_download_endpoint_bundle_not_found (line 371) | def test_download_endpoint_bundle_not_found( function test_s3_presigned_url_generation (line 385) | def test_s3_presigned_url_generation( function test_s3_upload_function (line 478) | def test_s3_upload_function(): FILE: server/tests/api/test_contests.py function json_contests (line 14) | def json_contests(jurisdiction_ids: list[str]) -> list[JSONDict]: function test_contests_list_empty (line 87) | def test_contests_list_empty(client, election_id): function test_contests_create_get_update_one (line 93) | def test_contests_create_get_update_one(client, election_id, json_contes... function test_contests_create_get_update_multiple (line 120) | def test_contests_create_get_update_multiple( function test_contests_order (line 145) | def test_contests_order( function test_update_contests_after_audit_starts (line 167) | def test_update_contests_after_audit_starts( function test_update_contests_no_targeted (line 184) | def test_update_contests_no_targeted( function test_update_contests_missing_field (line 199) | def test_update_contests_missing_field( function test_update_contests_invalid_jurisdictions (line 257) | def test_update_contests_invalid_jurisdictions( function test_contest_too_many_votes (line 285) | def test_contest_too_many_votes( function test_jurisdictions_contests_list_empty (line 355) | def test_jurisdictions_contests_list_empty( function test_jurisdictions_contests_list (line 369) | def test_jurisdictions_contests_list( function test_audit_board_contests_list_empty (line 388) | def test_audit_board_contests_list_empty( function test_audit_board_contests_list (line 409) | def test_audit_board_contests_list( function test_audit_board_contests_list_order (line 430) | def test_audit_board_contests_list_order( FILE: server/tests/api/test_election_settings.py function test_settings_get_empty (line 8) | def test_settings_get_empty(client: FlaskClient, election_id: str): function test_jurisdiction_settings_get_empty (line 23) | def test_jurisdiction_settings_get_empty( function test_update_election (line 45) | def test_update_election( function test_update_election_settings_after_audit_starts (line 85) | def test_update_election_settings_after_audit_starts( function test_invalid_state (line 112) | def test_invalid_state(client: FlaskClient, election_id: str): function test_invalid_risk_limit (line 137) | def test_invalid_risk_limit(client: FlaskClient, election_id: str): function test_invalid_additional_property (line 162) | def test_invalid_additional_property(client: FlaskClient, election_id: s... FILE: server/tests/api/test_elections.py function test_create_election_missing_fields (line 9) | def test_create_election_missing_fields(client: FlaskClient, org_id: str): function test_create_election_not_logged_in (line 33) | def test_create_election_not_logged_in(client: FlaskClient, org_id: str): function test_create_election (line 55) | def test_create_election(client: FlaskClient, org_id: str): function test_create_election_new_batch_comparison_audit (line 75) | def test_create_election_new_batch_comparison_audit(client: FlaskClient,... function test_create_election_new_ballot_comparison_audit (line 93) | def test_create_election_new_ballot_comparison_audit(client: FlaskClient... function test_create_election_new_hybrid_audit (line 113) | def test_create_election_new_hybrid_audit(client: FlaskClient, org_id: s... function test_create_election_default_state (line 131) | def test_create_election_default_state(client: FlaskClient, org_id: str): function test_create_election_in_org_with_logged_in_admin_without_access (line 154) | def test_create_election_in_org_with_logged_in_admin_without_access( function test_create_election_jurisdiction_admin (line 181) | def test_create_election_jurisdiction_admin( function test_create_election_bad_audit_type (line 211) | def test_create_election_bad_audit_type(client: FlaskClient, org_id: str): function test_create_election_bad_bp_type (line 234) | def test_create_election_bad_bp_type(client: FlaskClient, org_id: str): function test_create_election_mismatched_type (line 257) | def test_create_election_mismatched_type(client: FlaskClient, org_id: str): function test_create_election_in_org_duplicate_audit_name (line 280) | def test_create_election_in_org_duplicate_audit_name(client: FlaskClient... function test_create_election_two_orgs_same_name (line 317) | def test_create_election_two_orgs_same_name(client: FlaskClient): function test_delete_election (line 351) | def test_delete_election( function test_list_organizations (line 407) | def test_list_organizations(client: FlaskClient): function test_list_organizations_not_authorized (line 436) | def test_list_organizations_not_authorized( FILE: server/tests/api/test_jurisdictions.py function test_jurisdictions_list_empty (line 21) | def test_jurisdictions_list_empty(client: FlaskClient, election_id: str): function test_jurisdictions_list_no_manifest (line 27) | def test_jurisdictions_list_no_manifest( function test_jurisdictions_list_with_manifest (line 74) | def test_jurisdictions_list_with_manifest( function test_download_ballot_manifest_not_found (line 151) | def test_download_ballot_manifest_not_found(client, election_id, jurisdi... function test_duplicate_batch_name (line 158) | def test_duplicate_batch_name(client, election_id, jurisdiction_ids): function test_jurisdictions_status_round_1_no_audit_boards (line 224) | def test_jurisdictions_status_round_1_no_audit_boards( function test_jurisdictions_status_round_1_with_audit_boards (line 244) | def test_jurisdictions_status_round_1_with_audit_boards( function test_jurisdictions_status_round_1_with_audit_boards_without_ballots (line 289) | def test_jurisdictions_status_round_1_with_audit_boards_without_ballots( function test_jurisdictions_round_status_offline (line 316) | def test_jurisdictions_round_status_offline( function test_discrepancy_before_audit_launch (line 404) | def test_discrepancy_before_audit_launch( function test_discrepancy_non_batch_comparison_enabled (line 421) | def test_discrepancy_non_batch_comparison_enabled( function test_last_login_by_jurisdiction_with_round (line 439) | def test_last_login_by_jurisdiction_with_round( function test_last_login_by_jurisdiction_most_recent (line 498) | def test_last_login_by_jurisdiction_most_recent(client: FlaskClient, ele... FILE: server/tests/api/test_jurisdictions_file.py function test_missing_file (line 9) | def test_missing_file(client: FlaskClient, election_id: str): function test_bad_csv_file (line 24) | def test_bad_csv_file(client: FlaskClient, election_id: str): function test_missing_one_csv_field (line 66) | def test_missing_one_csv_field(client, election_id): function test_jurisdictions_file_metadata (line 92) | def test_jurisdictions_file_metadata(client, election_id): function test_replace_jurisdictions_file (line 126) | def test_replace_jurisdictions_file(client, election_id): function test_no_jurisdiction (line 173) | def test_no_jurisdiction(client, election_id): function test_single_jurisdiction_single_admin (line 185) | def test_single_jurisdiction_single_admin(client, election_id): function test_single_jurisdiction_multiple_admins (line 202) | def test_single_jurisdiction_multiple_admins(client, election_id): function test_multiple_jurisdictions_single_admin (line 220) | def test_multiple_jurisdictions_single_admin(client, election_id): function test_download_jurisdictions_file_not_found (line 237) | def test_download_jurisdictions_file_not_found(client, election_id): function test_convert_emails_to_lowercase (line 242) | def test_convert_emails_to_lowercase(client, election_id): function test_upload_jurisdictions_file_after_audit_starts (line 261) | def test_upload_jurisdictions_file_after_audit_starts( function test_upload_jurisdictions_file_duplicate_row (line 282) | def test_upload_jurisdictions_file_duplicate_row( function test_jurisdictions_file_dont_clobber_other_elections (line 311) | def test_jurisdictions_file_dont_clobber_other_elections( function test_jurisdictions_file_expected_num_ballots (line 357) | def test_jurisdictions_file_expected_num_ballots(client: FlaskClient, el... function test_jurisdiction_file_get_upload_url_missing_file_type (line 384) | def test_jurisdiction_file_get_upload_url_missing_file_type( function test_jurisdiction_file_get_upload_url (line 400) | def test_jurisdiction_file_get_upload_url(client: FlaskClient, election_... FILE: server/tests/api/test_public.py function copy_dict_and_remove_key (line 11) | def copy_dict_and_remove_key(input: dict, key: str): function test_public_compute_sample_sizes_input_validation (line 15) | def test_public_compute_sample_sizes_input_validation(client: FlaskClient): function test_public_compute_sample_sizes (line 262) | def test_public_compute_sample_sizes(client: FlaskClient, snapshot): function test_public_file_upload (line 557) | def test_public_file_upload(client: FlaskClient): function test_public_file_upload_path_traversal (line 576) | def test_public_file_upload_path_traversal(client: FlaskClient): function test_public_file_upload_unauthorized (line 599) | def test_public_file_upload_unauthorized(client: FlaskClient): function test_public_file_upload_error (line 621) | def test_public_file_upload_error(client: FlaskClient): FILE: server/tests/api/test_reports.py function test_audit_admin_report (line 8) | def test_audit_admin_report( function test_audit_admin_report_round_2 (line 35) | def test_audit_admin_report_round_2( function test_jurisdiction_admin_report (line 50) | def test_jurisdiction_admin_report( function test_report_before_audit_starts (line 81) | def test_report_before_audit_starts( function test_discrepancy_report_wrong_audit_type (line 126) | def test_discrepancy_report_wrong_audit_type( FILE: server/tests/api/test_rounds.py function test_rounds_list_empty (line 9) | def test_rounds_list_empty( function test_rounds_create_one (line 26) | def test_rounds_create_one( function test_rounds_create_two (line 100) | def test_rounds_create_two( function test_rounds_complete_audit (line 187) | def test_rounds_complete_audit( function test_rounds_round_2_required_if_all_blanks (line 245) | def test_rounds_round_2_required_if_all_blanks( function test_rounds_end_logic_unaffected_by_invalid_write_ins_1 (line 261) | def test_rounds_end_logic_unaffected_by_invalid_write_ins_1( function test_rounds_end_logic_unaffected_by_invalid_write_ins_2 (line 279) | def test_rounds_end_logic_unaffected_by_invalid_write_ins_2( function test_rounds_end_logic_unaffected_by_invalid_write_ins_3 (line 297) | def test_rounds_end_logic_unaffected_by_invalid_write_ins_3( function test_rounds_create_before_previous_round_complete (line 315) | def test_rounds_create_before_previous_round_complete( function test_rounds_wrong_number_too_big (line 340) | def test_rounds_wrong_number_too_big( function test_rounds_wrong_number_too_small (line 364) | def test_rounds_wrong_number_too_small( function test_rounds_missing_sample_sizes (line 402) | def test_rounds_missing_sample_sizes(client: FlaskClient, election_id: s... function test_rounds_missing_round_num (line 415) | def test_rounds_missing_round_num( function test_rounds_bad_sample_sizes (line 438) | def test_rounds_bad_sample_sizes( function test_finish_round_after_round_already_finished (line 480) | def test_finish_round_after_round_already_finished( function test_finish_round_before_launch (line 499) | def test_finish_round_before_launch(client: FlaskClient, election_id: str): function test_undo_start_round_before_launch (line 512) | def test_undo_start_round_before_launch(client: FlaskClient, election_id... function test_undo_start_round_1 (line 525) | def test_undo_start_round_1( function test_undo_start_round_1_with_audit_boards (line 553) | def test_undo_start_round_1_with_audit_boards( function test_undo_start_round_2 (line 572) | def test_undo_start_round_2( FILE: server/tests/api/test_sample_preview.py function test_sample_preview (line 10) | def test_sample_preview( function test_sample_preview_in_progress (line 77) | def test_sample_preview_in_progress( function test_preview_after_audit_launch (line 128) | def test_preview_after_audit_launch( FILE: server/tests/api/test_sample_sizes.py function test_sample_sizes_without_contests (line 10) | def test_sample_sizes_without_contests(client: FlaskClient, election_id:... function test_sample_sizes_without_risk_limit (line 28) | def test_sample_sizes_without_risk_limit( function test_sample_sizes_round_1 (line 50) | def test_sample_sizes_round_1( function test_sample_sizes_round_2 (line 66) | def test_sample_sizes_round_2( function test_samples_sizes_invalid_round_num (line 107) | def test_samples_sizes_invalid_round_num( function test_sample_sizes_background (line 121) | def test_sample_sizes_background( FILE: server/tests/api/test_support.py function test_support_list_organizations (line 17) | def test_support_list_organizations(client: FlaskClient, org_id: str): function test_support_create_organization (line 27) | def test_support_create_organization(client: FlaskClient): function test_support_create_organization_invalid (line 45) | def test_support_create_organization_invalid(client: FlaskClient): function test_support_get_organization (line 54) | def test_support_get_organization(client: FlaskClient, org_id: str, elec... function test_support_get_organization_round (line 88) | def test_support_get_organization_round( function test_support_delete_organization (line 124) | def test_support_delete_organization(client: FlaskClient): function test_support_update_organization (line 156) | def test_support_update_organization(client: FlaskClient, org_id: str): function test_support_list_active_elections (line 204) | def test_support_list_active_elections( function test_support_get_election (line 254) | def test_support_get_election( function test_support_permanently_delete_election (line 294) | def test_support_permanently_delete_election( function test_support_create_audit_admin (line 321) | def test_support_create_audit_admin( function test_support_create_audit_admin_already_in_auth0 (line 378) | def test_support_create_audit_admin_already_in_auth0( function test_support_create_audit_admin_already_exists (line 431) | def test_support_create_audit_admin_already_exists( function test_support_create_audit_admin_already_admin (line 472) | def test_support_create_audit_admin_already_admin( function test_support_create_audit_admin_invalid_email (line 490) | def test_support_create_audit_admin_invalid_email( function test_support_remove_audit_admin (line 511) | def test_support_remove_audit_admin(client: FlaskClient): function test_support_remove_audit_admin_invalid (line 534) | def test_support_remove_audit_admin_invalid(client: FlaskClient, org_id:... function test_support_get_jurisdiction (line 551) | def test_support_get_jurisdiction( function test_support_log_in_as_audit_admin (line 586) | def test_support_log_in_as_audit_admin( function test_support_log_in_as_jurisdiction_admin (line 608) | def test_support_log_in_as_jurisdiction_admin( function test_support_log_in_to_audit_as_audit_admin (line 632) | def test_support_log_in_to_audit_as_audit_admin(client: FlaskClient, ele... function test_support_log_in_to_audit_as_jurisdiction_admin (line 651) | def test_support_log_in_to_audit_as_jurisdiction_admin( function test_support_clear_audit_boards (line 675) | def test_support_clear_audit_boards( function test_support_clear_offline_results_ballot_polling (line 714) | def test_support_clear_offline_results_ballot_polling( function test_support_clear_offline_results_wrong_audit_type (line 846) | def test_support_clear_offline_results_wrong_audit_type( function test_support_undo_round_start (line 883) | def test_support_undo_round_start( function test_support_reopen_current_round (line 930) | def test_support_reopen_current_round( function test_support_reopen_current_round_when_audit_not_started (line 969) | def test_support_reopen_current_round_when_audit_not_started( function test_support_reopen_current_round_when_round_in_progress (line 987) | def test_support_reopen_current_round_when_round_in_progress( function test_list_users_by_organization (line 1006) | def test_list_users_by_organization( FILE: server/tests/audit_math/test_bravo.py function contests (line 18) | def contests(): function test_expected_sample_size (line 27) | def test_expected_sample_size(contests): function test_expected_sample_size_second_round (line 69) | def test_expected_sample_size_second_round(contests): function test_bravo_sample_sizes (line 106) | def test_bravo_sample_sizes(): function test_bravo_sample_sizes_small_prob (line 188) | def test_bravo_sample_sizes_small_prob(): function test_bravo_sample_sizes_round1_finish (line 211) | def test_bravo_sample_sizes_round1_finish(): function test_bravo_sample_sizes_round1_incomplete (line 235) | def test_bravo_sample_sizes_round1_incomplete(): function test_get_sample_size (line 258) | def test_get_sample_size(contests): function test_bravo_expected_prob (line 330) | def test_bravo_expected_prob(): function test_compute_risk (line 372) | def test_compute_risk(contests): function test_compute_risk_empty (line 463) | def test_compute_risk_empty(contests): function test_compute_risk_zero_test_statistic (line 556) | def test_compute_risk_zero_test_statistic(): function test_tied_contest (line 578) | def test_tied_contest(): function test_ballot_polling_not_found_ballots (line 621) | def test_ballot_polling_not_found_ballots(snapshot): function test_bravo_sample_size_considers_all_candidate_pairs (line 661) | def test_bravo_sample_size_considers_all_candidate_pairs(): function test_bravo_sample_size_zero_risk_limit (line 689) | def test_bravo_sample_size_zero_risk_limit(): FILE: server/tests/audit_math/test_macro.py function contests (line 38) | def contests(): function batches (line 48) | def batches(): function test_max_error (line 104) | def test_max_error(contests, batches) -> None: function test_get_sizes_extra_contests (line 144) | def test_get_sizes_extra_contests(contests, batches) -> None: function test_get_sample_sizes (line 187) | def test_get_sample_sizes(contests, batches) -> None: function test_full_recount (line 291) | def test_full_recount(contests, batches) -> None: function test_full_recount_with_replacement (line 317) | def test_full_recount_with_replacement(contests, batches) -> None: function test_almost_done (line 346) | def test_almost_done() -> None: function test_worst_case (line 369) | def test_worst_case() -> None: function test_compute_risk (line 401) | def test_compute_risk(contests, batches) -> None: function test_tied_contest (line 505) | def test_tied_contest() -> None: function test_close_contest (line 565) | def test_close_contest() -> None: function test_combined_batches_no_discrepancies (line 648) | def test_combined_batches_no_discrepancies(): function test_combined_batches_one_discrepancy (line 726) | def test_combined_batches_one_discrepancy(): function test_combined_batches_sampled_and_unsampled (line 822) | def test_combined_batches_sampled_and_unsampled(): function test_pending_ballots (line 918) | def test_pending_ballots(snapshot): function test_unauditable_ballots (line 1031) | def test_unauditable_ballots(snapshot): FILE: server/tests/audit_math/test_minerva.py function contests (line 10) | def contests(): function test_get_sample_size (line 23) | def test_get_sample_size(): function test_get_sample_size_landslide (line 81) | def test_get_sample_size_landslide(): function test_get_sample_size_big (line 91) | def test_get_sample_size_big(): function test_get_sample_size_bigger_approx (line 102) | def test_get_sample_size_bigger_approx(): function test_get_sample_size_second_round (line 116) | def test_get_sample_size_second_round(): function test_compute_risk_2r (line 132) | def test_compute_risk_2r(): function test_get_sample_size_2win (line 143) | def test_get_sample_size_2win(): function test_collect_risks (line 155) | def test_collect_risks(): function test_compute_risk_delta (line 171) | def test_compute_risk_delta(): function test_compute_risk_2win (line 191) | def test_compute_risk_2win(): function test_compute_risk_2win_2 (line 204) | def test_compute_risk_2win_2(): function test_compute_risk_2win_2_2r (line 217) | def test_compute_risk_2win_2_2r(): function test_compute_risk (line 230) | def test_compute_risk(): function test_compute_risk_close_narrow (line 248) | def test_compute_risk_close_narrow(): function test_compute_risk_close_narrow_2 (line 263) | def test_compute_risk_close_narrow_2(): function test_compute_risk_close_narrow_3 (line 279) | def test_compute_risk_close_narrow_3(): function test_compute_risk_too_low (line 295) | def test_compute_risk_too_low(): FILE: server/tests/audit_math/test_minerva2.py function test_make_r2b2_contest (line 13) | def test_make_r2b2_contest(): function test_get_sample_size (line 24) | def test_get_sample_size(): function test_get_sample_size_multi_candidate (line 41) | def test_get_sample_size_multi_candidate(): function test_get_sample_size_2win (line 60) | def test_get_sample_size_2win(): function test_get_sample_size_multiple_rounds (line 80) | def test_get_sample_size_multiple_rounds(): function test_compute_risk (line 105) | def test_compute_risk(): function test_compute_risk_2win (line 127) | def test_compute_risk_2win(): function test_compute_risk_multi_round (line 147) | def test_compute_risk_multi_round(): function test_compare_minervas (line 157) | def test_compare_minervas(): function test_compare_bravo (line 173) | def test_compare_bravo(): function test_abnormal_rounds (line 197) | def test_abnormal_rounds(): function test_tight_margins_full_count (line 222) | def test_tight_margins_full_count(): FILE: server/tests/audit_math/test_raire.py function contest (line 30) | def contest() -> Contest: function cvrs (line 45) | def cvrs() -> CVRS: function ballots (line 60) | def ballots() -> list[dict[str, int]]: function asn_func (line 74) | def asn_func(m): function test_make_neb_matrix (line 78) | def test_make_neb_matrix(contest: Contest, cvrs: CVRS): function test_make_raire_frontier (line 96) | def test_make_raire_frontier(contest: Contest, cvrs: CVRS, ballots: Ball... function test_find_assertions_too_good_ancestor (line 117) | def test_find_assertions_too_good_ancestor( function test_find_assertions_infinite_to_expand (line 143) | def test_find_assertions_infinite_to_expand( function test_find_assertions_fake_ancestor (line 165) | def test_find_assertions_fake_ancestor( function test_find_assertions_infinite_branch (line 185) | def test_find_assertions_infinite_branch( function test_find_assertions_many_children (line 220) | def test_find_assertions_many_children( function compare_result (line 239) | def compare_result(path: str, contests: dict[str, list[str]]): function parse_raire_input (line 299) | def parse_raire_input(input_file: str): function run_test (line 354) | def run_test(input_file: str, output_file: str, agap: float): function test_raire (line 380) | def test_raire(contest: Contest, cvrs: CVRS): function test_raire_recount (line 406) | def test_raire_recount(): function test_aspen_wrong_winner (line 430) | def test_aspen_wrong_winner(): function test_berkeley_2010 (line 437) | def test_berkeley_2010(): FILE: server/tests/audit_math/test_raire_utils.py function test_ranking_not_on_ballots (line 13) | def test_ranking_not_on_ballots(): function test_ranking (line 24) | def test_ranking(): function test_vote_for_candidate (line 39) | def test_vote_for_candidate(): function test_vote_for_eliminated_cand (line 53) | def test_vote_for_eliminated_cand(): function test_raire_assertion_comparator (line 64) | def test_raire_assertion_comparator(): function test_raire_assertion_to_str (line 90) | def test_raire_assertion_to_str(): function test_nebassertion (line 107) | def test_nebassertion(): function test_simple_contest (line 130) | def test_simple_contest(): function test_nebassertion_subsumes (line 160) | def test_nebassertion_subsumes(): function test_neb_repr (line 184) | def test_neb_repr(): function test_nenassertion_is_vote_for (line 191) | def test_nenassertion_is_vote_for(): function test_nenassertion_subsumes (line 210) | def test_nenassertion_subsumes(): function test_nen_repr (line 225) | def test_nen_repr(): function test_nen_hash (line 231) | def test_nen_hash(): function test_raire_node_descendents (line 237) | def test_raire_node_descendents(): function test_raire_node_repr (line 254) | def test_raire_node_repr(): function test_raire_frontier (line 280) | def test_raire_frontier(): function test_find_best_audit_simple (line 324) | def test_find_best_audit_simple(): function make_neb_assertion (line 363) | def make_neb_assertion( function make_nen_assertion (line 388) | def make_nen_assertion( function contest (line 415) | def contest() -> Contest: function cvrs (line 430) | def cvrs() -> CVRS: function ballots (line 445) | def ballots() -> list[dict[str, int]]: function asn_func (line 459) | def asn_func(m): function test_find_best_audit_complex (line 463) | def test_find_best_audit_complex(contest, cvrs, ballots): function test_find_best_with_eliminated (line 512) | def test_find_best_with_eliminated(contest, cvrs, ballots): function test_find_best_with_wrong_elimination (line 550) | def test_find_best_with_wrong_elimination(contest, cvrs, ballots): function test_perform_dive_impossible (line 585) | def test_perform_dive_impossible(contest, cvrs, ballots): function test_perform_dive_possible (line 631) | def test_perform_dive_possible(contest, cvrs, ballots): FILE: server/tests/audit_math/test_sampler.py function macro_batches (line 14) | def macro_batches(): function close_macro_batches (line 32) | def close_macro_batches(): function macro_contest (line 51) | def macro_contest(): function close_macro_contest (line 66) | def close_macro_contest(): function test_draw_sample (line 80) | def test_draw_sample(snapshot): function test_draw_more_samples (line 93) | def test_draw_more_samples(snapshot): function test_draw_macro_sample (line 109) | def test_draw_macro_sample(macro_batches, macro_contest, snapshot): function test_draw_more_macro_sample (line 121) | def test_draw_more_macro_sample(macro_batches, macro_contest, snapshot): function test_draw_macro_full_hand_tally (line 148) | def test_draw_macro_full_hand_tally(close_macro_batches, close_macro_con... function test_draw_macro_multiple_contests (line 187) | def test_draw_macro_multiple_contests(macro_batches, snapshot): function test_draw_macro_contest_not_in_any_batches (line 218) | def test_draw_macro_contest_not_in_any_batches(macro_batches): function random_manifest (line 238) | def random_manifest(): function test_ballot_labels (line 246) | def test_ballot_labels(): FILE: server/tests/audit_math/test_sampler_contest.py function contests (line 7) | def contests(): function test_compute_margins (line 16) | def test_compute_margins(contests): function test_diluted_margin (line 61) | def test_diluted_margin(contests): function test_repr (line 70) | def test_repr(contests): FILE: server/tests/audit_math/test_suite.py function strata (line 24) | def strata(): function test_sprt_functionality (line 38) | def test_sprt_functionality(strata): function analytic_strata (line 50) | def analytic_strata(): function test_sprt_analytic_example (line 64) | def test_sprt_analytic_example(analytic_strata): function test_edge_cases (line 76) | def test_edge_cases(analytic_strata): function cvr_strata (line 86) | def cvr_strata(): function test_cvr_compute_risk (line 97) | def test_cvr_compute_risk(cvr_strata): function test_fishers_combined (line 181) | def test_fishers_combined(): function test_get_sample_size (line 260) | def test_get_sample_size(): function test_winner_loses_no_cvr (line 320) | def test_winner_loses_no_cvr(): function test_close_contest_many_undervotes (line 389) | def test_close_contest_many_undervotes(): function test_wide_margin (line 464) | def test_wide_margin(): function test_wrong_outcome (line 548) | def test_wrong_outcome(): function test_escalation (line 626) | def test_escalation(): function test_really_close_race (line 754) | def test_really_close_race(): function test_multi_winner (line 836) | def test_multi_winner(): function test_multi_candidate (line 924) | def test_multi_candidate(): function test_tie (line 1013) | def test_tie(): function test_tiny_election (line 1094) | def test_tiny_election(): function test_invalid_try_n (line 1164) | def test_invalid_try_n(): function test_misstatements (line 1228) | def test_misstatements(): function test_cvr_recount (line 1277) | def test_cvr_recount(): function test_bp_recount (line 1357) | def test_bp_recount(): function test_full_recount (line 1437) | def test_full_recount(): function test_ess_misstatements (line 1517) | def test_ess_misstatements(): FILE: server/tests/audit_math/test_supersimple.py function cvrs (line 13) | def cvrs(): function contests (line 64) | def contests(): function test_compute_diluted_margin (line 73) | def test_compute_diluted_margin(contests): function test_find_no_discrepancies (line 83) | def test_find_no_discrepancies(contests, cvrs): function test_find_one_discrepancy (line 106) | def test_find_one_discrepancy(contests, cvrs): function test_negative_discrepancies (line 141) | def test_negative_discrepancies(contests, cvrs): function test_two_vote_overstatement_discrepancies (line 165) | def test_two_vote_overstatement_discrepancies(contests, cvrs): function test_race_not_in_cvr_discrepancy (line 187) | def test_race_not_in_cvr_discrepancy(contests, cvrs): function test_race_not_in_sample_discrepancy (line 209) | def test_race_not_in_sample_discrepancy(contests, cvrs): function test_ballot_not_found_discrepancy (line 231) | def test_ballot_not_found_discrepancy(contests, cvrs): function test_ballot_not_in_cvr (line 243) | def test_ballot_not_in_cvr(contests): function test_ballot_not_in_cvr_and_not_found (line 261) | def test_ballot_not_in_cvr_and_not_found(contests): function test_ess_discrepancies (line 274) | def test_ess_discrepancies(contests) -> None: function test_get_sample_sizes (line 463) | def test_get_sample_sizes(contests): function test_compute_risk (line 475) | def test_compute_risk(contests, cvrs): function test_tied_contest (line 620) | def test_tied_contest(): function test_supersimple_full_hand_tally (line 675) | def test_supersimple_full_hand_tally(): function test_snapshot_test (line 713) | def test_snapshot_test(): function test_multiplicity (line 772) | def test_multiplicity(): function test_supersimple_sample_size_zero_risk_limit (line 827) | def test_supersimple_sample_size_zero_risk_limit(): FILE: server/tests/audit_math/test_supersimple_raire.py function asn_func (line 20) | def asn_func(m): function cvrs (line 25) | def cvrs(): function contests (line 57) | def contests(): function assertions (line 67) | def assertions(contests, cvrs): function test_find_no_discrepancies (line 76) | def test_find_no_discrepancies(contests, cvrs, assertions): function test_find_one_discrepancy (line 99) | def test_find_one_discrepancy(contests, cvrs, assertions): function test_negative_discrepancies (line 127) | def test_negative_discrepancies(cvrs, assertions): function test_two_vote_overstatement_discrepancies (line 149) | def test_two_vote_overstatement_discrepancies(cvrs, assertions): function test_race_not_in_cvr_discrepancy (line 172) | def test_race_not_in_cvr_discrepancy(cvrs, assertions): function test_race_not_in_sample_discrepancy (line 194) | def test_race_not_in_sample_discrepancy(cvrs, assertions): function test_ballot_not_found_discrepancy (line 216) | def test_ballot_not_found_discrepancy(cvrs, assertions): function test_ballot_not_in_cvr (line 228) | def test_ballot_not_in_cvr(cvrs, assertions): function test_ballot_not_in_cvr_and_not_found (line 242) | def test_ballot_not_in_cvr_and_not_found(assertions): function test_fptp (line 255) | def test_fptp(contests, cvrs, assertions): function parse_shangrla_sample (line 418) | def parse_shangrla_sample(input_file: str) -> SAMPLECVRS: function test_get_sample_sizes_fptp (line 437) | def test_get_sample_sizes_fptp(contests, cvrs, assertions): function test_normalize_cvr (line 451) | def test_normalize_cvr(): function test_discrepancy_validation (line 465) | def test_discrepancy_validation(): function test_simple_irv_election (line 513) | def test_simple_irv_election(): function test_raire_example_1 (line 647) | def test_raire_example_1(): function test_raire_example_5 (line 768) | def test_raire_example_5(): function test_raire_example_12 (line 897) | def test_raire_example_12(): function test_raire_example_broken (line 1016) | def test_raire_example_broken(): FILE: server/tests/ballot_comparison/conftest.py function election_id (line 74) | def election_id(client: FlaskClient, org_id: str, request): function manifests (line 88) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function ess_manifests (line 121) | def ess_manifests(client: FlaskClient, election_id: str, jurisdiction_id... function hart_manifests (line 142) | def hart_manifests(client: FlaskClient, election_id: str, jurisdiction_i... function cvrs (line 163) | def cvrs( FILE: server/tests/ballot_comparison/test_ballot_comparison.py function test_set_contest_metadata_on_contest_creation (line 20) | def test_set_contest_metadata_on_contest_creation( function test_set_contest_metadata_on_manifest_and_cvr_upload (line 61) | def test_set_contest_metadata_on_manifest_and_cvr_upload( function test_cvr_choice_name_validation (line 208) | def test_cvr_choice_name_validation( function test_set_contest_metadata_on_jurisdiction_change (line 336) | def test_set_contest_metadata_on_jurisdiction_change( function test_require_cvr_uploads (line 394) | def test_require_cvr_uploads( function test_require_manifest_uploads (line 438) | def test_require_manifest_uploads( function test_contest_names_dont_match_cvr_contests (line 481) | def test_contest_names_dont_match_cvr_contests( function ballot_key (line 519) | def ballot_key(ballot: SampledBallot): function audit_all_ballots (line 528) | def audit_all_ballots( function check_discrepancies (line 645) | def check_discrepancies(report: str, audit_results): function test_ballot_comparison_two_rounds (line 666) | def test_ballot_comparison_two_rounds( function generate_audit_results (line 1008) | def generate_audit_results(round_id: str): # pragma: no cover function test_ballot_comparison_cvr_metadata (line 1048) | def test_ballot_comparison_cvr_metadata( function test_ballot_comparison_sample_size_validation (line 1153) | def test_ballot_comparison_sample_size_validation( function test_ballot_comparison_multiple_targeted_contests_sample_size (line 1212) | def test_ballot_comparison_multiple_targeted_contests_sample_size( function test_ballot_comparison_ess (line 1316) | def test_ballot_comparison_ess( function test_ballot_comparison_sample_preview (line 1528) | def test_ballot_comparison_sample_preview( FILE: server/tests/ballot_comparison/test_ballot_comparison_cardstyledata.py function test_ballot_comparison_cardstyledata_two_rounds (line 24) | def test_ballot_comparison_cardstyledata_two_rounds( FILE: server/tests/ballot_comparison/test_ballot_comparison_manifests.py function manifests (line 18) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function cvrs (line 61) | def cvrs( function test_ballot_comparison_container_manifest (line 111) | def test_ballot_comparison_container_manifest( function test_ballot_comparison_manifest_missing_tabulator (line 273) | def test_ballot_comparison_manifest_missing_tabulator( function test_ballot_comparison_manifest_unexpected_cvr_column (line 320) | def test_ballot_comparison_manifest_unexpected_cvr_column( FILE: server/tests/ballot_comparison/test_contest_name_standardizations.py function test_standardize_contest_names (line 10) | def test_standardize_contest_names( function test_standardize_contest_names_before_cvrs (line 156) | def test_standardize_contest_names_before_cvrs( function test_standardize_contest_names_before_contests (line 181) | def test_standardize_contest_names_before_contests( function test_standardize_contest_names_cvr_change (line 195) | def test_standardize_contest_names_cvr_change( function test_standardize_contest_names_contest_change (line 277) | def test_standardize_contest_names_contest_change( function test_standardize_contest_names_wrong_audit_type (line 359) | def test_standardize_contest_names_wrong_audit_type( function test_standardize_contest_names_after_audit_starts (line 383) | def test_standardize_contest_names_after_audit_starts( FILE: server/tests/ballot_comparison/test_cvrs.py function test_dominion_cvr_upload (line 11) | def test_dominion_cvr_upload( function test_cvrs_counting_group (line 150) | def test_cvrs_counting_group( function test_dominion_cvr_unique_voting_identifier (line 245) | def test_dominion_cvr_unique_voting_identifier( function test_dominion_cvrs_with_leading_equal_signs (line 339) | def test_dominion_cvrs_with_leading_equal_signs( function test_cvrs_clear (line 389) | def test_cvrs_clear( function test_cvrs_replace_as_audit_admin (line 438) | def test_cvrs_replace_as_audit_admin( function test_cvrs_upload_missing_file (line 491) | def test_cvrs_upload_missing_file( function test_cvrs_upload_bad_csv (line 515) | def test_cvrs_upload_bad_csv( function test_cvrs_wrong_audit_type (line 563) | def test_cvrs_wrong_audit_type( function test_cvrs_before_manifests (line 597) | def test_cvrs_before_manifests( function test_cvrs_newlines (line 647) | def test_cvrs_newlines( function test_invalid_cvrs (line 720) | def test_invalid_cvrs( function test_cvr_reprocess_after_manifest_reupload (line 1042) | def test_cvr_reprocess_after_manifest_reupload( function test_clearballot_cvr_upload (line 1186) | def test_clearballot_cvr_upload( function test_clearballot_cvr_upload_invalid (line 1260) | def test_clearballot_cvr_upload_invalid( function test_ess_cvr_upload (line 1436) | def test_ess_cvr_upload( function test_ess_cvr_upload_invalid (line 1534) | def test_ess_cvr_upload_invalid( function test_ess_cvr_upload_cvr_file_with_tabulator_cvr_column (line 1863) | def test_ess_cvr_upload_cvr_file_with_tabulator_cvr_column( function build_hart_cvr (line 1983) | def build_hart_cvr( function test_hart_cvr_upload (line 2169) | def test_hart_cvr_upload( function test_hart_cvr_upload_with_scanned_ballot_information (line 2241) | def test_hart_cvr_upload_with_scanned_ballot_information( function test_hart_cvr_upload_with_duplicate_batch_names (line 2430) | def test_hart_cvr_upload_with_duplicate_batch_names( function test_hart_cvr_upload_no_batch_match (line 2596) | def test_hart_cvr_upload_no_batch_match( function test_hart_cvr_upload_no_tabulator_plus_batch_match (line 2651) | def test_hart_cvr_upload_no_tabulator_plus_batch_match( function test_hart_cvr_upload_basic_input_validation (line 2735) | def test_hart_cvr_upload_basic_input_validation( function test_hart_cvr_upload_processing_validation (line 2786) | def test_hart_cvr_upload_processing_validation( function test_cvrs_unexpected_error (line 2889) | def test_cvrs_unexpected_error( function test_cvr_invalid_file_type (line 2951) | def test_cvr_invalid_file_type( function test_cvrs_get_upload_url_missing_file_type (line 2978) | def test_cvrs_get_upload_url_missing_file_type( function test_cvrs_get_upload_url (line 2998) | def test_cvrs_get_upload_url( function test_upload_cvrs_fails_while_processing_manifest_file (line 3038) | def test_upload_cvrs_fails_while_processing_manifest_file( function test_remove_cvrs_fails_while_processing_manifest_file (line 3076) | def test_remove_cvrs_fails_while_processing_manifest_file( function test_upload_ballot_manifest_fails_while_processing_cvr_file (line 3109) | def test_upload_ballot_manifest_fails_while_processing_cvr_file( function test_remove_ballot_manifest_fails_while_processing_cvr_file (line 3148) | def test_remove_ballot_manifest_fails_while_processing_cvr_file( FILE: server/tests/ballot_comparison/test_single_jurisdiction_ballot_comparison.py function jurisdiction_ids (line 13) | def jurisdiction_ids(client: FlaskClient, election_id: str) -> list[str]: function manifests (line 34) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function cvrs (line 54) | def cvrs( function test_ballot_comparison_single_jurisdiction_discrepancies (line 73) | def test_ballot_comparison_single_jurisdiction_discrepancies( FILE: server/tests/ballot_comparison/test_standardized_contests.py function test_upload_standardized_contests (line 9) | def test_upload_standardized_contests( function test_download_standardized_contests_file_before_upload (line 56) | def test_download_standardized_contests_file_before_upload( function test_standardized_contests_replace (line 63) | def test_standardized_contests_replace( function test_standardized_contests_bad_jurisdiction (line 102) | def test_standardized_contests_bad_jurisdiction( function test_standardized_contests_no_jurisdictions (line 138) | def test_standardized_contests_no_jurisdictions( function test_standardized_contests_missing_file (line 171) | def test_standardized_contests_missing_file( function test_standardized_contests_bad_csv (line 191) | def test_standardized_contests_bad_csv( function test_standardized_contests_wrong_audit_type (line 233) | def test_standardized_contests_wrong_audit_type( function test_standardized_contests_before_jurisdictions (line 261) | def test_standardized_contests_before_jurisdictions( function test_standardized_contests_newlines (line 280) | def test_standardized_contests_newlines( function test_standardized_contests_dominion_vote_for (line 306) | def test_standardized_contests_dominion_vote_for( function test_standardized_contests_change_jurisdictions_file (line 332) | def test_standardized_contests_change_jurisdictions_file( function test_standardized_contests_parse_all (line 427) | def test_standardized_contests_parse_all( function test_reupload_standardized_contests_after_contests_selected (line 450) | def test_reupload_standardized_contests_after_contests_selected( function test_standardized_contests_get_upload_url_missing_file_type (line 562) | def test_standardized_contests_get_upload_url_missing_file_type( function test_standardized_contests_get_upload_url (line 584) | def test_standardized_contests_get_upload_url(client: FlaskClient, elect... function test_replace_standardized_contests_file_while_processing_jurisdictions_file_fails (line 606) | def test_replace_standardized_contests_file_while_processing_jurisdictio... FILE: server/tests/ballot_polling/test_ballot_polling.py function test_not_found_ballots (line 7) | def test_not_found_ballots( FILE: server/tests/ballot_polling/test_minerva_ballot_polling.py function election_id (line 8) | def election_id(client: FlaskClient, org_id: str, request): function election_settings (line 20) | def election_settings(client: FlaskClient, election_id: str): function test_minerva_sample_size (line 32) | def test_minerva_sample_size( function test_minerva_ballot_polling_one_round (line 51) | def test_minerva_ballot_polling_one_round( function test_minerva_ballot_polling_two_rounds (line 173) | def test_minerva_ballot_polling_two_rounds( FILE: server/tests/ballot_polling/test_providence_ballot_polling.py function election_id (line 8) | def election_id(client: FlaskClient, org_id: str, request): function election_settings (line 20) | def election_settings(client: FlaskClient, election_id: str): function test_providence_sample_size (line 32) | def test_providence_sample_size( FILE: server/tests/batch_comparison/conftest.py function election_id (line 10) | def election_id(client: FlaskClient, org_id: str, request): function election_settings (line 22) | def election_settings(client: FlaskClient, election_id: str): function contest_ids (line 36) | def contest_ids(client: FlaskClient, election_id: str, jurisdiction_ids:... function contest_id (line 60) | def contest_id(contest_ids: list[str]) -> str: function manifests (line 65) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function batch_tallies (line 105) | def batch_tallies( function round_1_id (line 153) | def round_1_id( function tally_entry_user_id (line 186) | def tally_entry_user_id( FILE: server/tests/batch_comparison/test_batch_comparison.py function parse_vote_deltas (line 10) | def parse_vote_deltas( function check_discrepancies (line 24) | def check_discrepancies( function test_batch_comparison_sample_size (line 44) | def test_batch_comparison_sample_size( function test_batch_comparison_without_all_batch_tallies (line 62) | def test_batch_comparison_without_all_batch_tallies( function test_batch_comparison_too_many_votes (line 88) | def test_batch_comparison_too_many_votes( function test_batch_comparison_round_1 (line 129) | def test_batch_comparison_round_1( function test_batch_comparison_round_2 (line 206) | def test_batch_comparison_round_2( function test_batch_comparison_custom_sample_size_validation (line 505) | def test_batch_comparison_custom_sample_size_validation( function test_batch_comparison_batches_sampled_multiple_times (line 541) | def test_batch_comparison_batches_sampled_multiple_times( function test_batch_comparison_sample_all_batches (line 743) | def test_batch_comparison_sample_all_batches( function test_batch_comparison_undo_start_round_1 (line 788) | def test_batch_comparison_undo_start_round_1( function test_batch_comparison_cant_create_audit_boards (line 808) | def test_batch_comparison_cant_create_audit_boards( function test_batch_comparison_sample_preview (line 830) | def test_batch_comparison_sample_preview( function test_batch_tallies_summed_by_jurisdiction_csv_generation (line 888) | def test_batch_tallies_summed_by_jurisdiction_csv_generation( function test_batch_comparison_combined_batches (line 913) | def test_batch_comparison_combined_batches( function test_batch_comparison_pending_ballots (line 1194) | def test_batch_comparison_pending_ballots( function test_batch_comparison_contests_pending_ballots_validation (line 1334) | def test_batch_comparison_contests_pending_ballots_validation( FILE: server/tests/batch_comparison/test_batch_inventory.py function contest_id (line 104) | def contest_id(client: FlaskClient, election_id: str, jurisdiction_ids: ... function contest_ids (line 126) | def contest_ids(client: FlaskClient, election_id: str, jurisdiction_ids:... function test_batch_inventory_happy_path (line 163) | def test_batch_inventory_happy_path( function test_batch_inventory_happy_path_cvrs_with_leading_equal_signs (line 374) | def test_batch_inventory_happy_path_cvrs_with_leading_equal_signs( function test_batch_inventory_happy_path_cvrs_with_extra_spaces (line 585) | def test_batch_inventory_happy_path_cvrs_with_extra_spaces( function test_batch_inventory_happy_path_multi_contest_batch_comparison (line 796) | def test_batch_inventory_happy_path_multi_contest_batch_comparison( function test_batch_inventory_download_before_upload (line 1007) | def test_batch_inventory_download_before_upload( function test_batch_inventory_invalid_file_uploads (line 1030) | def test_batch_inventory_invalid_file_uploads( function test_batch_inventory_missing_data_multi_contest_batch_comparison (line 1167) | def test_batch_inventory_missing_data_multi_contest_batch_comparison( function test_batch_inventory_excel_tabulator_status_file (line 1222) | def test_batch_inventory_excel_tabulator_status_file( function test_batch_inventory_wrong_tabulator_status_file (line 1404) | def test_batch_inventory_wrong_tabulator_status_file( function test_batch_inventory_undo_sign_off (line 1532) | def test_batch_inventory_undo_sign_off( function test_batch_inventory_delete_cvr_after_sign_off (line 1587) | def test_batch_inventory_delete_cvr_after_sign_off( function test_batch_inventory_delete_tabulator_status_after_sign_off (line 1642) | def test_batch_inventory_delete_tabulator_status_after_sign_off( function test_batch_inventory_upload_cvr_before_contests (line 1697) | def test_batch_inventory_upload_cvr_before_contests( function test_batch_inventory_upload_tabulator_status_before_cvr (line 1730) | def test_batch_inventory_upload_tabulator_status_before_cvr( function test_batch_inventory_cvr_get_upload_url_missing_file_type (line 1764) | def test_batch_inventory_cvr_get_upload_url_missing_file_type( function test_batch_inventory_cvr_get_upload_url (line 1784) | def test_batch_inventory_cvr_get_upload_url( function test_batch_inventory_tabulator_status_get_upload_url_missing_file_type (line 1806) | def test_batch_inventory_tabulator_status_get_upload_url_missing_file_type( function test_batch_inventory_tabulator_status_get_upload_url (line 1826) | def test_batch_inventory_tabulator_status_get_upload_url( function test_upload_tabulator_status_file_while_cvr_file_is_processing_fails (line 1848) | def test_upload_tabulator_status_file_while_cvr_file_is_processing_fails( function test_remove_tabulator_status_file_while_cvr_file_is_processing_fails (line 1895) | def test_remove_tabulator_status_file_while_cvr_file_is_processing_fails( function test_upload_cvr_file_while_tabulator_status_file_is_processing_fails (line 1938) | def test_upload_cvr_file_while_tabulator_status_file_is_processing_fails( function test_remove_cvr_file_while_tabulator_status_file_is_processing_fails (line 1993) | def test_remove_cvr_file_while_tabulator_status_file_is_processing_fails( function test_batch_inventory_hart_cvr_upload (line 2045) | def test_batch_inventory_hart_cvr_upload( function test_batch_inventory_hart_cvr_upload_multi_contest (line 2184) | def test_batch_inventory_hart_cvr_upload_multi_contest( function test_batch_inventory_ess_cvr_upload (line 2320) | def test_batch_inventory_ess_cvr_upload( function test_batch_inventory_ess_cvr_upload_no_ballot_file (line 2510) | def test_batch_inventory_ess_cvr_upload_no_ballot_file( function test_batch_inventory_ess_cvr_upload_multi_contest (line 2625) | def test_batch_inventory_ess_cvr_upload_multi_contest( FILE: server/tests/batch_comparison/test_batch_tallies.py function manifests (line 11) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function test_batch_tallies_upload (line 26) | def test_batch_tallies_upload( function test_batch_tallies_clear (line 134) | def test_batch_tallies_clear( function test_batch_tallies_replace_as_audit_admin (line 182) | def test_batch_tallies_replace_as_audit_admin( function test_batch_tallies_upload_missing_file (line 265) | def test_batch_tallies_upload_missing_file( function test_batch_tallies_upload_bad_csv (line 290) | def test_batch_tallies_upload_bad_csv( function test_batch_tallies_upload_missing_choice (line 347) | def test_batch_tallies_upload_missing_choice( function test_batch_tallies_wrong_batch_names (line 390) | def test_batch_tallies_wrong_batch_names( function test_batch_tallies_too_many_tallies (line 481) | def test_batch_tallies_too_many_tallies( function test_batch_tallies_ballot_polling (line 524) | def test_batch_tallies_ballot_polling( function test_batch_tallies_bad_jurisdiction (line 562) | def test_batch_tallies_bad_jurisdiction( function test_batch_tallies_before_manifests (line 594) | def test_batch_tallies_before_manifests( function test_batch_tallies_reprocess_after_manifest_reupload (line 625) | def test_batch_tallies_reprocess_after_manifest_reupload( function test_batch_tallies_template_csv_generation (line 715) | def test_batch_tallies_template_csv_generation( function test_batch_tallies_get_upload_url_missing_file_type (line 740) | def test_batch_tallies_get_upload_url_missing_file_type( function test_batch_tallies_get_upload_url (line 760) | def test_batch_tallies_get_upload_url( function test_upload_batch_tallies_fails_while_processing_manifest_file (line 785) | def test_upload_batch_tallies_fails_while_processing_manifest_file( function test_remove_batch_tallies_fails_while_processing_manifest_file (line 822) | def test_remove_batch_tallies_fails_while_processing_manifest_file( function test_upload_ballot_manifest_fails_while_processing_batch_tallies_file (line 854) | def test_upload_ballot_manifest_fails_while_processing_batch_tallies_file( function test_remove_ballot_manifest_fails_while_processing_batch_tallies_file (line 891) | def test_remove_ballot_manifest_fails_while_processing_batch_tallies_file( FILE: server/tests/batch_comparison/test_batches.py function test_list_batches_bad_round_id (line 11) | def test_list_batches_bad_round_id( function test_list_batches (line 25) | def test_list_batches( function test_batch_retrieval_list_bad_round_id (line 68) | def test_batch_retrieval_list_bad_round_id( function test_batch_retrieval_list_round_1 (line 83) | def test_batch_retrieval_list_round_1( function test_record_batch_results (line 106) | def test_record_batch_results( function test_record_batch_results_as_support_user (line 331) | def test_record_batch_results_as_support_user( function test_batch_tally_sheet_order (line 376) | def test_batch_tally_sheet_order( function test_record_batch_results_invalid (line 450) | def test_record_batch_results_invalid( function test_unfinalize_batch_results (line 590) | def test_unfinalize_batch_results( function test_record_batch_results_bad_round (line 747) | def test_record_batch_results_bad_round( function test_batches_human_sort_order (line 876) | def test_batches_human_sort_order( function test_finalize_batch_results_incomplete (line 1007) | def test_finalize_batch_results_incomplete( FILE: server/tests/batch_comparison/test_multi_contest_batch_comparison.py function contest_ids (line 9) | def contest_ids(client: FlaskClient, election_id: str, jurisdiction_ids:... function manifests (line 43) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function batch_tallies (line 108) | def batch_tallies( function put_batch_results (line 134) | def put_batch_results( function test_multi_contest_batch_comparison_jurisdiction_upload_validation (line 152) | def test_multi_contest_batch_comparison_jurisdiction_upload_validation( function test_multi_contest_batch_comparison_batch_results_validation (line 270) | def test_multi_contest_batch_comparison_batch_results_validation( function test_multi_contest_batch_comparison_end_to_end (line 435) | def test_multi_contest_batch_comparison_end_to_end( function test_multi_contest_batch_comparison_round_2 (line 726) | def test_multi_contest_batch_comparison_round_2( function test_multi_contest_batch_comparison_batch_tallies_template_csv_generation (line 1065) | def test_multi_contest_batch_comparison_batch_tallies_template_csv_gener... function test_multi_contest_batch_comparison_batch_tallies_summed_by_jurisdiction_csv_generation (line 1102) | def test_multi_contest_batch_comparison_batch_tallies_summed_by_jurisdic... function test_multi_contest_batch_comparison_editing_contests_after_uploads (line 1128) | def test_multi_contest_batch_comparison_editing_contests_after_uploads( function test_updating_contests_while_jurisdictions_file_is_being_processed (line 1180) | def test_updating_contests_while_jurisdictions_file_is_being_processed( function test_updating_contests_while_batch_tallies_file_is_being_processed (line 1217) | def test_updating_contests_while_batch_tallies_file_is_being_processed( function test_batch_tallies_dont_reprocess_when_contest_jurisdictions_change (line 1256) | def test_batch_tallies_dont_reprocess_when_contest_jurisdictions_change( FILE: server/tests/batch_comparison/test_sample_extra_batches_by_counting_group.py function org_id (line 10) | def org_id(client: FlaskClient, request) -> str: function manifests (line 24) | def manifests( function test_sample_extra_batches_by_counting_group (line 76) | def test_sample_extra_batches_by_counting_group( function test_sample_extra_batches_with_no_extra_batches_to_sample (line 256) | def test_sample_extra_batches_with_no_extra_batches_to_sample( function test_sample_extra_batches_min_percentage_of_jurisdiction_ballots_selected (line 359) | def test_sample_extra_batches_min_percentage_of_jurisdiction_ballots_sel... function test_sample_extra_batches_hmpb_and_bmd_groups_selected (line 434) | def test_sample_extra_batches_hmpb_and_bmd_groups_selected( function test_sample_extra_batches_with_invalid_counting_group (line 530) | def test_sample_extra_batches_with_invalid_counting_group( function test_sample_extra_batches_with_combined_batches (line 610) | def test_sample_extra_batches_with_combined_batches( FILE: server/tests/batch_comparison/test_sample_extra_batches_to_ensure_one_per_jurisdiction.py function org_id (line 10) | def org_id(client: FlaskClient, request) -> str: function manifests (line 24) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function batch_tallies (line 61) | def batch_tallies( function test_sample_extra_batches_to_ensure_one_per_jurisdiction (line 120) | def test_sample_extra_batches_to_ensure_one_per_jurisdiction( FILE: server/tests/batch_comparison/test_single_jurisdiction_batch_comparison.py function jurisdiction_ids (line 11) | def jurisdiction_ids(client: FlaskClient, election_id: str) -> list[str]: function manifests (line 32) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function batch_tallies (line 57) | def batch_tallies( function test_batch_comparison_single_jurisdiction_discrepancies (line 88) | def test_batch_comparison_single_jurisdiction_discrepancies( FILE: server/tests/batch_comparison/test_support_batch_comparison.py function test_support_get_jurisdiction_batch_comparison (line 6) | def test_support_get_jurisdiction_batch_comparison( function test_support_combined_batches (line 38) | def test_support_combined_batches( function test_support_invalid_combined_batches (line 220) | def test_support_invalid_combined_batches( FILE: server/tests/conftest.py function mock_openid_configuration_response (line 31) | def mock_openid_configuration_response(method: str, url: str, **kwargs) ... function mock_oauth_requests (line 60) | def mock_oauth_requests(): function reset_test_db (line 75) | def reset_test_db(tmp_path_factory, worker_id): function client (line 93) | def client() -> FlaskClient: function org_id (line 99) | def org_id(client: FlaskClient, request) -> str: function election_id (line 105) | def election_id(client: FlaskClient, org_id: str, request) -> str: function jurisdiction_ids (line 113) | def jurisdiction_ids(client: FlaskClient, election_id: str) -> list[str]: function contest_ids (line 142) | def contest_ids( function election_settings (line 200) | def election_settings(client: FlaskClient, election_id: str): function manifests (line 214) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function round_1_id (line 235) | def round_1_id( function round_2_id (line 263) | def round_2_id( function audit_board_round_1_ids (line 300) | def audit_board_round_1_ids( function audit_board_round_2_ids (line 323) | def audit_board_round_2_ids( function auth_decorator_test_routes (line 353) | def auth_decorator_test_routes(): function error_test_routes (line 397) | def error_test_routes(): FILE: server/tests/helpers.py function default_ja_email (line 30) | def default_ja_email(election_id: str): function post_json (line 34) | def post_json(client: FlaskClient, url: str, obj=None) -> Any: function put_json (line 42) | def put_json(client: FlaskClient, url: str, obj) -> Any: function patch_json (line 48) | def patch_json(client: FlaskClient, url: str, obj) -> Any: function assert_ok (line 54) | def assert_ok(rv: Response): function set_logged_in_user (line 62) | def set_logged_in_user( function clear_logged_in_user (line 72) | def clear_logged_in_user(client: FlaskClient): function set_support_user (line 77) | def set_support_user(client: FlaskClient, email: str): function clear_support_user (line 82) | def clear_support_user(client: FlaskClient): function create_user (line 87) | def create_user(email=DEFAULT_AA_EMAIL) -> User: function create_org_and_admin (line 98) | def create_org_and_admin( function add_admin_to_org (line 110) | def add_admin_to_org(org_id: str, user_email: str): function create_jurisdiction_admin (line 119) | def create_jurisdiction_admin(jurisdiction_id: str, user_email: str) -> ... function create_jurisdiction (line 130) | def create_jurisdiction( function create_jurisdiction_and_admin (line 142) | def create_jurisdiction_and_admin( function create_election (line 152) | def create_election( function audit_ballot (line 175) | def audit_ballot( function run_audit_round (line 198) | def run_audit_round( function run_audit_round_all_blanks (line 256) | def run_audit_round_all_blanks( function scrub_datetime (line 300) | def scrub_datetime(string: str) -> str: function scrub_test_jurisdiction_admin_email_uuid (line 304) | def scrub_test_jurisdiction_admin_email_uuid(string: str) -> str: function assert_match_report (line 312) | def assert_match_report(report_bytes: bytes, snapshot): function assert_is_string (line 319) | def assert_is_string(value): function assert_is_int (line 324) | def assert_is_int(value): function assert_is_id (line 329) | def assert_is_id(value): function assert_is_date (line 335) | def assert_is_date(value): function assert_is_passphrase (line 348) | def assert_is_passphrase(value): function asserts_startswith (line 354) | def asserts_startswith(prefix: str): function compare_json (line 365) | def compare_json(actual_json, expected_json): function find_log (line 416) | def find_log(caplog, level: int, message: str) -> logging.LogRecord | None: function string_to_bytes_io (line 427) | def string_to_bytes_io(string: str) -> io.BytesIO: function upload_file_helper (line 433) | def upload_file_helper( function upload_ballot_manifest (line 465) | def upload_ballot_manifest( function upload_batch_tallies (line 482) | def upload_batch_tallies( function upload_cvrs (line 499) | def upload_cvrs( function upload_jurisdictions_file (line 526) | def upload_jurisdictions_file( function upload_standardized_contests (line 542) | def upload_standardized_contests( function upload_batch_inventory_cvr (line 558) | def upload_batch_inventory_cvr( function upload_batch_inventory_tabulator_status (line 579) | def upload_batch_inventory_tabulator_status( function zip_cvrs (line 596) | def zip_cvrs(cvrs: list[tuple[io.BytesIO, str]]) -> io.BytesIO: function zip_hart_cvrs (line 605) | def zip_hart_cvrs(cvrs: list[str]): function no_automatic_task_execution (line 616) | def no_automatic_task_execution(): FILE: server/tests/hybrid/conftest.py function election_id (line 10) | def election_id(client: FlaskClient, org_id: str, request): function contest_ids (line 22) | def contest_ids( function manifests (line 62) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function cvrs (line 97) | def cvrs( FILE: server/tests/hybrid/test_hybrid.py function test_contest_vote_counts_before_cvrs (line 12) | def test_contest_vote_counts_before_cvrs( function test_contest_vote_counts (line 75) | def test_contest_vote_counts( function test_hybrid_sample_size (line 138) | def test_hybrid_sample_size( function test_sample_size_before_manifest (line 172) | def test_sample_size_before_manifest( function test_sample_size_before_cvrs (line 197) | def test_sample_size_before_cvrs( function test_contest_names_dont_match_cvrs (line 223) | def test_contest_names_dont_match_cvrs( function test_contest_choices_dont_match_cvrs (line 267) | def test_contest_choices_dont_match_cvrs( function test_hybrid_two_rounds (line 324) | def test_hybrid_two_rounds( function test_hybrid_manifest_validation_too_many_votes (line 523) | def test_hybrid_manifest_validation_too_many_votes( function test_hybrid_manifest_validation_too_few_cvr_ballots (line 593) | def test_hybrid_manifest_validation_too_few_cvr_ballots( function test_hybrid_manifest_validation_few_non_cvr_ballots (line 663) | def test_hybrid_manifest_validation_few_non_cvr_ballots( function test_hybrid_manifest_validation_too_many_cvr_votes (line 733) | def test_hybrid_manifest_validation_too_many_cvr_votes( function test_hybrid_filter_cvrs (line 776) | def test_hybrid_filter_cvrs( function test_hybrid_custom_sample_size (line 829) | def test_hybrid_custom_sample_size( function test_hybrid_invalid_sample_size (line 873) | def test_hybrid_invalid_sample_size( function test_hybrid_sample_preview (line 952) | def test_hybrid_sample_preview( FILE: server/tests/hybrid/test_hybrid_manifests.py function test_hybrid_manifest (line 9) | def test_hybrid_manifest( function test_hybrid_manifest_missing_cvr_column (line 68) | def test_hybrid_manifest_missing_cvr_column( FILE: server/tests/test_app.py function test_index (line 4) | def test_index(client: FlaskClient): function test_logo (line 15) | def test_logo(client: FlaskClient): function test_static_logo (line 20) | def test_static_logo(client: FlaskClient): FILE: server/tests/test_auth.py function aa_email (line 27) | def aa_email(org_id: str) -> str: function election_id (line 37) | def election_id(client: FlaskClient, org_id: str, aa_email: str) -> str: function batch_election_id (line 43) | def batch_election_id(client: FlaskClient, org_id: str, aa_email: str) -... function jurisdiction_id (line 54) | def jurisdiction_id(election_id: str) -> str: function batch_jurisdiction_id (line 60) | def batch_jurisdiction_id(batch_election_id: str) -> str: function ja_email (line 66) | def ja_email(jurisdiction_id: str) -> str: function batch_ja_email (line 73) | def batch_ja_email(batch_jurisdiction_id: str) -> str: function create_round (line 79) | def create_round(election_id: str, round_num=1) -> str: function round_id (line 87) | def round_id(election_id: str) -> str: function batch_round_id (line 92) | def batch_round_id(batch_election_id: str) -> str: function create_audit_board (line 96) | def create_audit_board(jurisdiction_id: str, round_id: str) -> str: function audit_board_id (line 110) | def audit_board_id(jurisdiction_id: str, round_id: str) -> str: function create_tally_entry_user (line 114) | def create_tally_entry_user(jurisdiction_id: str) -> str: function tally_entry_user_id (line 127) | def tally_entry_user_id(batch_jurisdiction_id: str) -> str: function check_redirect_contains_redirect_uri (line 134) | def check_redirect_contains_redirect_uri(response, expected_url): function test_support_start (line 149) | def test_support_start(client: FlaskClient): function test_support_callback (line 154) | def test_support_callback( function test_support_callback_rejected (line 182) | def test_support_callback_rejected( function test_support_callback_multiple_allowed_domains (line 203) | def test_support_callback_multiple_allowed_domains( function test_auditadmin_start (line 221) | def test_auditadmin_start(client: FlaskClient): function test_auditadmin_callback (line 226) | def test_auditadmin_callback(client: FlaskClient, aa_email: str): function parse_login_code (line 252) | def parse_login_code(text: str): function parse_login_code_from_smtp (line 260) | def parse_login_code_from_smtp(mock_smtp): function test_jurisdiction_admin_login (line 266) | def test_jurisdiction_admin_login(mock_smtp, client: FlaskClient, ja_ema... function test_jurisdiction_admin_two_users (line 319) | def test_jurisdiction_admin_two_users( function test_jurisdiction_admin_bad_email (line 335) | def test_jurisdiction_admin_bad_email(client: FlaskClient): function test_jurisdiction_admin_reuse_code (line 362) | def test_jurisdiction_admin_reuse_code(mock_smtp, client: FlaskClient, j... function test_jurisdiction_admin_smtp_error (line 381) | def test_jurisdiction_admin_smtp_error(mock_smtp, client: FlaskClient, j... function test_jurisdiction_admin_bad_code (line 402) | def test_jurisdiction_admin_bad_code(mock_smtp, client: FlaskClient, ja_... function test_jurisdiction_admin_expired_code (line 462) | def test_jurisdiction_admin_expired_code(mock_smtp, client: FlaskClient,... function test_jurisdiction_admin_too_many_attempts (line 492) | def test_jurisdiction_admin_too_many_attempts( function test_audit_board_log_in (line 555) | def test_audit_board_log_in( function test_tally_entry_login (line 582) | def test_tally_entry_login( function test_tally_entry_reject_login_request (line 718) | def test_tally_entry_reject_login_request( function test_tally_entry_wrong_audit_type (line 788) | def test_tally_entry_wrong_audit_type( function test_tally_entry_generate_unique_code (line 806) | def test_tally_entry_generate_unique_code( function test_tally_entry_invalid_passphrase (line 871) | def test_tally_entry_invalid_passphrase( function test_tally_entry_invalid_members (line 898) | def test_tally_entry_invalid_members( function test_tally_entry_invalid_code (line 963) | def test_tally_entry_invalid_code( function test_logout (line 1076) | def test_logout(client: FlaskClient, aa_email: str): function test_support_logout (line 1124) | def test_support_logout(client: FlaskClient, aa_email: str): function test_auth0_error (line 1171) | def test_auth0_error(client: FlaskClient): function test_audit_board_not_found (line 1184) | def test_audit_board_not_found( function test_auth_me_audit_admin (line 1202) | def test_auth_me_audit_admin(client: FlaskClient, aa_email: str): function test_auth_me_jurisdiction_admin (line 1215) | def test_auth_me_jurisdiction_admin( function test_auth_me_audit_board (line 1251) | def test_auth_me_audit_board( function test_auth_me_not_logged_in (line 1275) | def test_auth_me_not_logged_in(client: FlaskClient): function test_session_expires_on_inactivity (line 1285) | def test_session_expires_on_inactivity(client: FlaskClient, aa_email: str): function test_session_expires_after_lifetime (line 1301) | def test_session_expires_after_lifetime(client: FlaskClient, aa_email: s... function test_support_session_expires_on_inactivity (line 1317) | def test_support_session_expires_on_inactivity(client: FlaskClient, aa_e... function test_support_session_expires_after_lifetime (line 1342) | def test_support_session_expires_after_lifetime(client: FlaskClient, aa_... function test_restrict_access_audit_admin (line 1371) | def test_restrict_access_audit_admin(client: FlaskClient, election_id: s... function test_restrict_access_audit_admin_wrong_org (line 1378) | def test_restrict_access_audit_admin_wrong_org( function test_restrict_access_audit_admin_not_found (line 1395) | def test_restrict_access_audit_admin_not_found( function test_restrict_access_audit_admin_with_jurisdiction_admin (line 1405) | def test_restrict_access_audit_admin_with_jurisdiction_admin( function test_restrict_access_audit_admin_audit_board_user (line 1424) | def test_restrict_access_audit_admin_audit_board_user( function test_restrict_access_audit_admin_tally_entry_user (line 1444) | def test_restrict_access_audit_admin_tally_entry_user( function test_restrict_access_audit_admin_anonymous_user (line 1462) | def test_restrict_access_audit_admin_anonymous_user( function test_restrict_access_jurisdiction_admin_jurisdiction_admin (line 1480) | def test_restrict_access_jurisdiction_admin_jurisdiction_admin( function test_restrict_access_jurisdiction_admin_wrong_org (line 1491) | def test_restrict_access_jurisdiction_admin_wrong_org( function test_restrict_access_jurisdiction_admin_wrong_election (line 1513) | def test_restrict_access_jurisdiction_admin_wrong_election( function test_restrict_access_jurisdiction_admin_wrong_jurisdiction (line 1530) | def test_restrict_access_jurisdiction_admin_wrong_jurisdiction( function test_restrict_access_jurisdiction_admin_election_not_found (line 1553) | def test_restrict_access_jurisdiction_admin_election_not_found( function test_restrict_access_jurisdiction_admin_jurisdiction_not_found (line 1565) | def test_restrict_access_jurisdiction_admin_jurisdiction_not_found( function test_restrict_access_jurisdiction_admin_with_audit_admin (line 1573) | def test_restrict_access_jurisdiction_admin_with_audit_admin( function test_restrict_access_jurisdiction_admin_with_audit_board_user (line 1584) | def test_restrict_access_jurisdiction_admin_with_audit_board_user( function test_restrict_access_jurisdiction_admin_with_tally_entry_user (line 1605) | def test_restrict_access_jurisdiction_admin_with_tally_entry_user( function test_restrict_access_jurisdiction_admin_with_anonymous_user (line 1626) | def test_restrict_access_jurisdiction_admin_with_anonymous_user( function test_restrict_access_audit_board_with_audit_board_user (line 1641) | def test_restrict_access_audit_board_with_audit_board_user( function test_restrict_access_audit_board_with_audit_admin (line 1661) | def test_restrict_access_audit_board_with_audit_admin( function test_restrict_access_audit_board_with_jurisdiction_admin (line 1685) | def test_restrict_access_audit_board_with_jurisdiction_admin( function test_restrict_access_audit_board_with_tally_entry_user (line 1709) | def test_restrict_access_audit_board_with_tally_entry_user( function test_restrict_access_audit_board_with_anonymous_user (line 1732) | def test_restrict_access_audit_board_with_anonymous_user( function test_restrict_access_audit_board_wrong_org (line 1752) | def test_restrict_access_audit_board_wrong_org( function test_restrict_access_audit_board_wrong_election (line 1784) | def test_restrict_access_audit_board_wrong_election( function test_restrict_access_audit_board_wrong_jurisdiction (line 1804) | def test_restrict_access_audit_board_wrong_jurisdiction( function test_restrict_access_audit_board_wrong_round (line 1824) | def test_restrict_access_audit_board_wrong_round( function test_restrict_access_audit_board_wrong_audit_board (line 1838) | def test_restrict_access_audit_board_wrong_audit_board( function test_restrict_access_audit_board_election_not_found (line 1861) | def test_restrict_access_audit_board_election_not_found( function test_restrict_access_audit_board_jurisdiction_not_found (line 1874) | def test_restrict_access_audit_board_jurisdiction_not_found( function test_restrict_access_audit_board_round_not_found (line 1887) | def test_restrict_access_audit_board_round_not_found( function test_restrict_access_audit_board_audit_board_not_found (line 1900) | def test_restrict_access_audit_board_audit_board_not_found( function test_restrict_access_tally_entry_with_tally_entry_user (line 1914) | def test_restrict_access_tally_entry_with_tally_entry_user( function test_restrict_access_tally_entry_with_audit_admin (line 1931) | def test_restrict_access_tally_entry_with_audit_admin( function test_restrict_access_tally_entry_with_jurisdiction_admin (line 1952) | def test_restrict_access_tally_entry_with_jurisdiction_admin( function test_restrict_access_tally_entry_with_audit_board (line 1973) | def test_restrict_access_tally_entry_with_audit_board( function test_restrict_access_tally_entry_with_anonymous_user (line 1994) | def test_restrict_access_tally_entry_with_anonymous_user( function test_restrict_access_tally_entry_election_not_found (line 2011) | def test_restrict_access_tally_entry_election_not_found( function test_restrict_access_tally_entry_jurisdiction_not_found (line 2023) | def test_restrict_access_tally_entry_jurisdiction_not_found( function test_restrict_access_tally_entry_tally_entry_user_not_logged_in (line 2035) | def test_restrict_access_tally_entry_tally_entry_user_not_logged_in( function test_restrict_access_tally_entry_wrong_election (line 2060) | def test_restrict_access_tally_entry_wrong_election( function test_restrict_access_tally_entry_wrong_jurisdiction (line 2081) | def test_restrict_access_tally_entry_wrong_jurisdiction( function test_support (line 2106) | def test_support(client: FlaskClient): function test_csrf (line 2116) | def test_csrf(client: FlaskClient, org_id: str): FILE: server/tests/test_background_tasks.py function db_session (line 39) | def db_session(request): function setup (line 57) | def setup(): function test_task_happy_path (line 63) | def test_task_happy_path(caplog, db_session): function test_task_user_error (line 143) | def test_task_user_error(caplog, db_session): function test_task_python_error (line 189) | def test_task_python_error(capture_exception, caplog, db_session): function test_task_python_error_format (line 238) | def test_task_python_error_format(capture_exception, caplog, db_session): function test_task_db_error (line 287) | def test_task_db_error(capture_exception, caplog, db_session): function test_task_multiple_run_in_order (line 337) | def test_task_multiple_run_in_order(db_session): function test_task_interrupted (line 362) | def test_task_interrupted(caplog, db_session): function test_multiple_workers (line 448) | def test_multiple_workers(db_session): function test_lock_key (line 518) | def test_lock_key(db_session): function test_multiple_workers_lock_on_election (line 556) | def test_multiple_workers_lock_on_election(db_session): function test_task_missing_election_id (line 647) | def test_task_missing_election_id(): function test_task_missing_parameter (line 658) | def test_task_missing_parameter(db_session): function test_file_is_processing (line 670) | def test_file_is_processing(db_session): FILE: server/tests/test_errors.py function test_uncaught_exception_500 (line 8) | def test_uncaught_exception_500(client: FlaskClient): function test_internal_error_500 (line 22) | def test_internal_error_500(client: FlaskClient): FILE: server/tests/test_full_hand_tally.py function contest_ids (line 13) | def contest_ids( function manifests (line 50) | def manifests(client: FlaskClient, election_id: str, jurisdiction_ids: l... function test_all_ballots_sample_size (line 84) | def test_all_ballots_sample_size( function test_all_ballots_audit (line 99) | def test_all_ballots_audit( function test_full_hand_tally_results_validation (line 452) | def test_full_hand_tally_results_validation( function test_full_hand_tally_results_unfinalize (line 741) | def test_full_hand_tally_results_unfinalize( FILE: server/tests/test_helpers.py function test_compare_json (line 5) | def test_compare_json(): FILE: server/tests/test_migrations.py function alembic_config (line 16) | def alembic_config(): function alembic_engine (line 22) | def alembic_engine(): FILE: server/tests/test_multi_winner_contest.py function contest_ids (line 11) | def contest_ids( function test_multi_winner_sample_size (line 47) | def test_multi_winner_sample_size( function run_multi_winner_audit_round (line 64) | def run_multi_winner_audit_round( function test_multi_winner_two_rounds (line 104) | def test_multi_winner_two_rounds( FILE: server/tests/test_multiple_targeted_contests.py function contest_ids (line 11) | def contest_ids( function test_sample_size_round_1 (line 89) | def test_sample_size_round_1( function test_multiple_targeted_contests_two_rounds (line 105) | def test_multiple_targeted_contests_two_rounds( function test_multiple_targeted_contests_full_hand_tally_error (line 243) | def test_multiple_targeted_contests_full_hand_tally_error( FILE: server/tests/test_offline_data_entry.py function election_settings (line 8) | def election_settings(client: FlaskClient, election_id: str): function test_offline_results_empty (line 20) | def test_offline_results_empty( function test_run_offline_audit (line 43) | def test_run_offline_audit( function test_offline_results_without_audit_boards (line 162) | def test_offline_results_without_audit_boards( function test_offline_results_invalid (line 187) | def test_offline_results_invalid( function test_offline_results_bad_round (line 256) | def test_offline_results_bad_round( function test_offline_results_in_online_election (line 354) | def test_offline_results_in_online_election( function test_offline_results_jurisdiction_with_no_ballots (line 383) | def test_offline_results_jurisdiction_with_no_ballots( FILE: server/tests/test_slack_worker.py function setup (line 15) | def setup(): function test_slack_worker_require_webhook_url (line 21) | def test_slack_worker_require_webhook_url(): function test_slack_worker_happy_path (line 28) | def test_slack_worker_happy_path(mock_post, client: FlaskClient, org_id:... function test_slack_worker_one_notification_at_a_time (line 55) | def test_slack_worker_one_notification_at_a_time( function test_slack_worker_error_in_slack_api (line 96) | def test_slack_worker_error_in_slack_api(mock_post, client: FlaskClient,... function test_slack_worker_message_format (line 123) | def test_slack_worker_message_format(snapshot): function test_slack_worker_truncate_long_error_messages (line 256) | def test_slack_worker_truncate_long_error_messages(): FILE: server/tests/test_websessions.py function test_websession_create (line 11) | def test_websession_create(): FILE: server/tests/util/test_binpacking.py function bucket (line 6) | def bucket(): function bucketlist (line 11) | def bucketlist(): function skewedbucketlist (line 38) | def skewedbucketlist(): function balancedbucketlist (line 65) | def balancedbucketlist(): function balancedskewedbucketlist (line 92) | def balancedskewedbucketlist(skewedbucketlist): class TestBucket (line 96) | class TestBucket: method test_init (line 97) | def test_init(self, bucket): method test_add_batch (line 109) | def test_add_batch(self, bucket): method test_remove_batch (line 167) | def test_remove_batch(self, bucket): method test_comparator (line 249) | def test_comparator(self, bucket): method test_repr (line 277) | def test_repr(self, bucket): class TestBucketList (line 295) | class TestBucketList: method test_init (line 296) | def test_init(self, bucketlist): method test_balance (line 301) | def test_balance(self, bucketlist): method test_balance_skewed (line 326) | def test_balance_skewed(self, skewedbucketlist): method test_repr_print (line 353) | def test_repr_print(self, bucketlist): class TestBalancedBucketList (line 386) | class TestBalancedBucketList: method test_init (line 387) | def test_init(self, balancedbucketlist): method test_is_balanced (line 392) | def test_is_balanced(self, bucketlist, balancedbucketlist): method test_balance_skewedbalanced (line 424) | def test_balance_skewedbalanced(self, skewedbucketlist, balancedskewed... method test_get_avg_size (line 456) | def test_get_avg_size(self, balancedbucketlist): method test_repr (line 459) | def test_repr(self, balancedbucketlist): FILE: server/tests/util/test_collections.py function test_group_by (line 8) | def test_group_by(): function test_find_first_duplicate (line 23) | def test_find_first_duplicate(): function test_diff_file_lists_ignoring_order_and_case (line 33) | def test_diff_file_lists_ignoring_order_and_case(): FILE: server/tests/util/test_csv_parse.py function parse_csv (line 30) | def parse_csv(csv_string: str, columns: list[CSVColumnType]): function test_parse_csv_happy_path (line 35) | def test_parse_csv_happy_path(): function test_parse_csv_optional_columns (line 56) | def test_parse_csv_optional_columns(): function test_parse_csv_allow_empty_rows (line 92) | def test_parse_csv_allow_empty_rows(): function test_parse_csv_composite_unique_key (line 115) | def test_parse_csv_composite_unique_key(): function test_parse_csv_no_unique_key (line 129) | def test_parse_csv_no_unique_key(): function test_parse_csv_empty (line 144) | def test_parse_csv_empty(): function test_parse_csv_no_headers (line 150) | def test_parse_csv_no_headers(): function test_parse_csv_no_rows_after_headers (line 158) | def test_parse_csv_no_rows_after_headers(): function test_parse_csv_missing_header (line 164) | def test_parse_csv_missing_header(): function test_parse_csv_duplicate_header (line 177) | def test_parse_csv_duplicate_header(): function test_parse_csv_bad_number (line 188) | def test_parse_csv_bad_number(): function test_parse_csv_bad_email (line 202) | def test_parse_csv_bad_email(): function test_parse_csv_bad_yes_no (line 218) | def test_parse_csv_bad_yes_no(): function test_parse_csv_empty_cell_in_column (line 234) | def test_parse_csv_empty_cell_in_column(): function test_parse_csv_missing_cell_in_row (line 265) | def test_parse_csv_missing_cell_in_row(): function test_parse_csv_extra_cell_in_row (line 274) | def test_parse_csv_extra_cell_in_row(): function test_parse_csv_extra_column (line 285) | def test_parse_csv_extra_column(): function test_parse_csv_not_comma_delimited (line 311) | def test_parse_csv_not_comma_delimited(): function test_parse_csv_empty_trailing_columns_with_data_in_those_columns (line 324) | def test_parse_csv_empty_trailing_columns_with_data_in_those_columns(): function test_parse_csv_duplicate_value_in_unique_column (line 339) | def test_parse_csv_duplicate_value_in_unique_column(): function test_parse_csv_duplicate_value_with_composite_unique_columns (line 353) | def test_parse_csv_duplicate_value_with_composite_unique_columns(): function test_parse_csv_total_row (line 367) | def test_parse_csv_total_row(): function test_parse_csv_header_wrong_case (line 492) | def test_parse_csv_header_wrong_case(): function test_parse_csv_space_in_header (line 514) | def test_parse_csv_space_in_header(): function test_parse_csv_space_in_value (line 536) | def test_parse_csv_space_in_value(): function test_parse_csv_comma_in_number (line 556) | def test_parse_csv_comma_in_number(): function test_parse_csv_empty_row (line 567) | def test_parse_csv_empty_row(): function test_parse_csv_headers_out_of_order (line 601) | def test_parse_csv_headers_out_of_order(): function test_parse_csv_headers_out_of_order_with_optional_column (line 608) | def test_parse_csv_headers_out_of_order_with_optional_column(): function test_parse_csv_empty_trailing_columns (line 618) | def test_parse_csv_empty_trailing_columns(): function test_parse_csv_excel_mac_newlines (line 628) | def test_parse_csv_excel_mac_newlines(): function test_parse_csv_real_world_examples (line 989) | def test_parse_csv_real_world_examples(): function test_parse_csv_excel_file (line 1007) | def test_parse_csv_excel_file(): function test_parse_csv_pdf_file (line 1021) | def test_parse_csv_pdf_file(): function test_parse_csv_cant_detect_encoding (line 1034) | def test_parse_csv_cant_detect_encoding(): function test_parse_csv_xls_mislabeled_as_csv (line 1046) | def test_parse_csv_xls_mislabeled_as_csv(): function test_parse_csv_replace_bad_chars (line 1061) | def test_parse_csv_replace_bad_chars(): FILE: server/tests/util/test_cvr_snapshot_parse.py function test_read_cvr_snapshot_one_entry (line 6) | def test_read_cvr_snapshot_one_entry(): function test_read_cvr_snapshot_two_entries_equal_length (line 11) | def test_read_cvr_snapshot_two_entries_equal_length(): function test_read_cvr_snapshot_two_entries_earlier_snapshot_ends_sooner (line 20) | def test_read_cvr_snapshot_two_entries_earlier_snapshot_ends_sooner(): function test_read_cvr_snapshot_two_entries_earlier_snapshot_ends_later (line 34) | def test_read_cvr_snapshot_two_entries_earlier_snapshot_ends_later(): function test_read_cvr_snapshot_mismatched_row (line 50) | def test_read_cvr_snapshot_mismatched_row(): function test_read_cvr_snapshot_many_entries_happy_path (line 65) | def test_read_cvr_snapshot_many_entries_happy_path(): function test_read_cvr_snapshot_malformed_iterator (line 81) | def test_read_cvr_snapshot_malformed_iterator(): FILE: server/tests/util/test_file_storage.py function test_store_file_raises_with_s3_config (line 30) | def test_store_file_raises_with_s3_config(mock_boto_client): function test_retrieve_file_streaming (line 101) | def test_retrieve_file_streaming(mock_boto_client): function test_file_storage_local_file (line 127) | def test_file_storage_local_file(): class HappyPathTestConfig (line 158) | class HappyPathTestConfig: function test_validate_and_get_standard_file_upload_request_params (line 166) | def test_validate_and_get_standard_file_upload_request_params(mock_reque... function test_validate_and_get_standard_file_upload_request_params_errors (line 206) | def test_validate_and_get_standard_file_upload_request_params_errors(moc... function test_get_full_storage_path (line 331) | def test_get_full_storage_path(): function test_read_zip_filenames (line 345) | def test_read_zip_filenames(): FILE: server/tests/util/test_get_json.py function test_safe_get_json_dict (line 7) | def test_safe_get_json_dict(): function test_safe_get_json_list (line 22) | def test_safe_get_json_list(): FILE: server/tests/util/test_hart_parse.py function namespace (line 12) | def namespace(): function test_find_text_xml (line 16) | def test_find_text_xml(namespace): function test_find_xml (line 26) | def test_find_xml(namespace): function test_findall_xml (line 34) | def test_findall_xml(namespace): function test_parse_contest_results (line 43) | def test_parse_contest_results(namespace): FILE: server/tests/util/test_jsonschema.py function test_validate_schema (line 57) | def test_validate_schema(): FILE: server/tests/util/test_strings.py function test_format_count (line 4) | def test_format_count(): FILE: server/util/binpacking.py class Bucket (line 6) | class Bucket: method __init__ (line 7) | def __init__(self, name: str): method add_batch (line 13) | def add_batch(self, batch_name: str, batch_size: int) -> None: method remove_batch (line 22) | def remove_batch(self, batch_name: str) -> dict[str, int]: method __repr__ (line 35) | def __repr__(self) -> str: method __gt__ (line 44) | def __gt__(self, other: "Bucket") -> bool: method __eq__ (line 47) | def __eq__(self, other: object) -> bool: class BucketList (line 53) | class BucketList: method __init__ (line 59) | def __init__(self, buckets: list[Bucket]): method get_avg_size (line 63) | def get_avg_size(self) -> float: method deviation (line 66) | def deviation(self) -> float: method balance (line 69) | def balance(self) -> "BucketList": method __repr__ (line 134) | def __repr__(self) -> str: method pretty_print (line 137) | def pretty_print(self): # pragma: no cover class BalancedBucketList (line 144) | class BalancedBucketList: method __init__ (line 152) | def __init__(self, buckets): method get_avg_size (line 216) | def get_avg_size(self) -> float: method deviation (line 219) | def deviation(self) -> float: method __repr__ (line 222) | def __repr__(self) -> str: method pretty_print (line 225) | def pretty_print(self): # pragma: no cover FILE: server/util/collections.py function group_by_iter (line 8) | def group_by_iter(items: Iterable[T], key=None): function group_by (line 13) | def group_by(items: Iterable[T], key=None): function find_first_duplicate (line 18) | def find_first_duplicate(list: Iterable[T]) -> T | None: function diff_file_lists_ignoring_order_and_case (line 27) | def diff_file_lists_ignoring_order_and_case( FILE: server/util/csv_download.py function election_timestamp_name (line 11) | def election_timestamp_name(election: Election) -> str: function jurisdiction_timestamp_name (line 17) | def jurisdiction_timestamp_name(election: Election, jurisdiction: Jurisd... function csv_response (line 24) | def csv_response(csv_file: IO, filename: str) -> Response: FILE: server/util/csv_parse.py class CSVParseError (line 26) | class CSVParseError(UserError): class CSVValueType (line 30) | class CSVValueType(str, Enum): class CSVColumnType (line 37) | class CSVColumnType(NamedTuple): function parse_csv (line 61) | def parse_csv(file: BinaryIO, columns: list[CSVColumnType]) -> CSVDictIt... function is_filetype_csv_mimetype (line 83) | def is_filetype_csv_mimetype(file_type: str) -> bool: function read_chunks (line 87) | def read_chunks(file: IO[bytes], chunk_size: int) -> Iterable[bytes]: function decode_csv (line 95) | def decode_csv(file: IO[bytes]) -> TextIO: function validate_not_empty (line 128) | def validate_not_empty(file: IO[bytes]): function validate_comma_delimited (line 134) | def validate_comma_delimited(file: TextIO): function strip_whitespace (line 154) | def strip_whitespace(csv: CSVIterator) -> CSVIterator: function reject_no_rows (line 158) | def reject_no_rows(csv: CSVIterator) -> CSVIterator: function skip_empty_trailing_columns (line 167) | def skip_empty_trailing_columns(csv: CSVIterator) -> CSVIterator: function validate_and_normalize_headers (line 198) | def validate_and_normalize_headers( function is_empty_row (line 231) | def is_empty_row(row: dict[str, Any]) -> bool: function skip_empty_rows (line 235) | def skip_empty_rows(csv: CSVDictIterator) -> CSVDictIterator: function reject_empty_cells (line 241) | def reject_empty_cells( function validate_and_parse_values (line 260) | def validate_and_parse_values( function format_tuple (line 305) | def format_tuple(tup: tuple) -> str: function reject_duplicate_values (line 309) | def reject_duplicate_values( function reject_total_rows (line 341) | def reject_total_rows(csv: CSVDictIterator) -> CSVDictIterator: function reject_final_total_row (line 352) | def reject_final_total_row(csv: CSVDictIterator, columns: list[CSVColumn... function convert_rows_to_dicts (line 378) | def convert_rows_to_dicts(csv: CSVIterator) -> CSVDictIterator: function pluralize (line 396) | def pluralize(word: str, num: int) -> str: function get_header_indices (line 400) | def get_header_indices(headers_row: list[str]) -> dict[str, int]: function column_value (line 409) | def column_value( FILE: server/util/cvr_snapshot_parse.py function read_cvr_snapshots (line 12) | def read_cvr_snapshots( FILE: server/util/file.py class FileType (line 23) | class FileType(str, enum.Enum): function serialize_file (line 29) | def serialize_file(file: File | None) -> JSONDict | None: function serialize_file_processing (line 39) | def serialize_file_processing(file: File | None) -> JSONDict | None: function timestamp_filename (line 46) | def timestamp_filename(prefix: str, extension: str) -> str: function s3 (line 50) | def s3(): function store_file (line 59) | def store_file(file: IO[bytes], storage_path: str) -> str: function retrieve_file (line 71) | def retrieve_file(file: File) -> BinaryIO: function retrieve_file_to_buffer (line 88) | def retrieve_file_to_buffer(file: File, working_directory: str) -> Binar... function delete_file (line 105) | def delete_file(file: File): function zip_files (line 116) | def zip_files(files: Mapping[str, IO[bytes]]) -> IO[bytes]: function read_zip_filenames (line 126) | def read_zip_filenames(zip_file: BinaryIO) -> list[str]: function unzip_files (line 138) | def unzip_files(zip_file: BinaryIO, directory_to_extract_to: str) -> lis... function get_full_storage_path (line 149) | def get_full_storage_path(file_path: str) -> str: function get_file_upload_url (line 166) | def get_file_upload_url( function get_audit_folder_path (line 193) | def get_audit_folder_path(election_id: str) -> str: function get_jurisdiction_folder_path (line 197) | def get_jurisdiction_folder_path( function validate_and_get_standard_file_upload_request_params (line 204) | def validate_and_get_standard_file_upload_request_params( function is_filetype_zip_mimetype (line 237) | def is_filetype_zip_mimetype(mime_type: str) -> bool: function is_filetype_xml_mimetype (line 241) | def is_filetype_xml_mimetype(mime_type: str) -> bool: function validate_mimetype (line 245) | def validate_mimetype(mime_type: str, expected_file_types: list[FileType... function any_jurisdiction_file_is_processing (line 267) | def any_jurisdiction_file_is_processing(jurisdiction: Jurisdiction) -> b... FILE: server/util/get_json.py function safe_get_json_dict (line 7) | def safe_get_json_dict(request: Request) -> JSONDict: function safe_get_json_list (line 16) | def safe_get_json_list(request: Request) -> list[JSONDict]: FILE: server/util/hart_parse.py function find_text_xml (line 7) | def find_text_xml(xml: ElementTree | Element | None, tag: str): function find_xml (line 14) | def find_xml(xml: ElementTree | Element, tag: str): function findall_xml (line 18) | def findall_xml(xml: ElementTree | Element, tag: str): function parse_contest_results (line 22) | def parse_contest_results(cvr_xml: ElementTree): FILE: server/util/isoformat.py function isoformat (line 4) | def isoformat( FILE: server/util/jsonschema.py function validate (line 22) | def validate(instance: Any, schema: JSONSchema): function validate_schema (line 32) | def validate_schema(schema: JSONSchema): function _serialize_key (line 84) | def _serialize_key(key: str | int): function _serialize_keypath (line 91) | def _serialize_keypath(keypath: list[str | int]): FILE: server/util/redirect.py function redirect (line 10) | def redirect(path: str): FILE: server/util/string.py function format_count (line 2) | def format_count(count: int, singular: str, plural: str) -> str: function strip_optional_string (line 7) | def strip_optional_string(value: str | None) -> str: function comma_join_until_limit (line 12) | def comma_join_until_limit(items: list[str], limit: int) -> str: FILE: server/websession.py class ArloSession (line 16) | class ArloSession(CallbackDict, SessionMixin): method __init__ (line 17) | def __init__(self, sid=None, initial=None): class ArloSessionInterface (line 27) | class ArloSessionInterface(SessionInterface): method _generate_sid (line 28) | def _generate_sid(self): method open_session (line 31) | def open_session(self, app: Flask, request: Request): method save_session (line 43) | def save_session(self, app, session, response): function cleanup_sessions (line 91) | def cleanup_sessions(db_session): FILE: server/worker/tasks.py class UserError (line 23) | class UserError(Exception): function background_task (line 32) | def background_task(task_handler: Callable): function create_background_task (line 40) | def create_background_task( function task_log_data (line 79) | def task_log_data(task: BackgroundTask) -> JSONDict: function emit_progress_for_task (line 88) | def emit_progress_for_task(task_id: str): function run_task (line 100) | def run_task(task: BackgroundTask, db_session): function claim_next_task (line 151) | def claim_next_task(worker_id: str, db_session) -> BackgroundTask | None: function reset_task (line 215) | def reset_task(task: BackgroundTask, db_session): function serialize_background_task (line 233) | def serialize_background_task(task: BackgroundTask | None) -> JSONDict |... FILE: server/worker/worker.py function run_worker (line 20) | def run_worker(worker_id: str, db_session, pause_between_tasks_seconds): FILE: stubs/consistent_sampler/__init__.pyi class Ticket (line 81) | class Ticket(tuple, Generic[Id]): method __new__ (line 85) | def __new__(cls, ticket_number: str, id: Id, generation: int): ... function sampler (line 87) | def sampler( FILE: stubs/cryptorandom/cryptorandom/__init__.pyi class SHA256 (line 3) | class SHA256(random.Random): ... FILE: stubs/r2b2/athena.pyi class Athena (line 5) | class Athena(Audit): method __init__ (line 7) | def __init__( method get_min_sample_size (line 10) | def get_min_sample_size( method satisfactory_sample_size (line 13) | def satisfactory_sample_size( method next_sample_size (line 16) | def next_sample_size(self, *args: Any, **kwargs: Any) -> None: ... method stopping_condition_pairwise (line 17) | def stopping_condition_pairwise(self, pair: str, verbose: bool = ...) ... method next_min_winner_ballots_pairwise (line 18) | def next_min_winner_ballots_pairwise(self, sub_audit: PairwiseAudit) -... method compute_min_winner_ballots (line 19) | def compute_min_winner_ballots( method find_kmin (line 22) | def find_kmin( method compute_all_min_winner_ballots (line 25) | def compute_all_min_winner_ballots( method compute_risk (line 32) | def compute_risk( method get_risk_level (line 35) | def get_risk_level(self): ... FILE: stubs/r2b2/audit.pyi class PairwiseAudit (line 6) | class PairwiseAudit: method __init__ (line 16) | def __init__(self, sub_contest: PairwiseContest) -> None: ... method get_pair_str (line 17) | def get_pair_str(self): ... class Audit (line 19) | class Audit(ABC, metaclass=abc.ABCMeta): method __init__ (line 32) | def __init__( method current_dist_null (line 40) | def current_dist_null(self) -> None: ... method current_dist_reported (line 41) | def current_dist_reported(self) -> None: ... method truncate_dist_null (line 42) | def truncate_dist_null(self) -> None: ... method truncate_dist_reported (line 43) | def truncate_dist_reported(self) -> None: ... method asn (line 44) | def asn(self, pair: str) -> Any: ... method execute_round (line 45) | def execute_round( method run (line 48) | def run(self, verbose: bool = ...) -> Any: ... method get_min_sample_size (line 50) | def get_min_sample_size(self, sub_audit: PairwiseAudit) -> Any: ... method next_sample_size (line 52) | def next_sample_size(self, *args: Any, **kwargs: Any) -> Any: ... method stopping_condition (line 53) | def stopping_condition(self, verbose: bool = ...) -> bool: ... method stopping_condition_pairwise (line 55) | def stopping_condition_pairwise(self, pair: str, verbose: bool = ...) ... method next_min_winner_ballots (line 56) | def next_min_winner_ballots(self, verbose: bool = ...) -> Any: ... method next_min_winner_ballots_pairwise (line 58) | def next_min_winner_ballots_pairwise(self, sub_audit: PairwiseAudit) -... method compute_min_winner_ballots (line 60) | def compute_min_winner_ballots( method compute_all_min_winner_ballots (line 64) | def compute_all_min_winner_ballots( method compute_risk (line 68) | def compute_risk( method get_risk_level (line 72) | def get_risk_level(self, *args: Any, **kwargs: Any) -> Any: ... FILE: stubs/r2b2/brla.pyi class BayesianRLA (line 6) | class BayesianRLA(Audit): method __init__ (line 8) | def __init__( method get_min_sample_size (line 15) | def get_min_sample_size(self, sub_audit: PairwiseAudit) -> Any: ... method stopping_condition_pairwise (line 16) | def stopping_condition_pairwise(self, pair: str, verbose: bool = ...) ... method next_min_winner_ballots_pairwise (line 17) | def next_min_winner_ballots_pairwise( method compute_priors (line 20) | def compute_priors(self) -> np.ndarray: ... method compute_risk (line 21) | def compute_risk( method next_sample_size (line 29) | def next_sample_size(self) -> None: ... method compute_min_winner_ballots (line 31) | def compute_min_winner_ballots( method compute_all_min_winner_ballots (line 39) | def compute_all_min_winner_ballots( method get_risk_level (line 47) | def get_risk_level(self, *args: Any, **kwargs: Any) -> None: ... FILE: stubs/r2b2/cli.pyi class IntList (line 13) | class IntList(click.ParamType): method convert (line 15) | def convert(self, value: Any, param: Any, ctx: Any): ... function cli (line 21) | def cli() -> None: ... function interactive (line 22) | def interactive( function bulk (line 31) | def bulk( function template (line 42) | def template(style: Any, output: Any) -> None: ... function input_audit (line 43) | def input_audit( function input_contest (line 50) | def input_contest() -> Contest: ... function input_election (line 51) | def input_election() -> Election: ... function input_warning (line 52) | def input_warning(msg: Any) -> None: ... FILE: stubs/r2b2/contest.pyi class ContestType (line 4) | class ContestType(Enum): class PairwiseContest (line 8) | class PairwiseContest: method __init__ (line 15) | def __init__( class Contest (line 23) | class Contest: method __init__ (line 33) | def __init__( method to_json (line 41) | def to_json(self): ... FILE: stubs/r2b2/election.pyi class Election (line 4) | class Election: method __init__ (line 8) | def __init__( method add_contest (line 11) | def add_contest(self) -> None: ... FILE: stubs/r2b2/eor_bravo.pyi class EOR_BRAVO (line 5) | class EOR_BRAVO(Audit): method __init__ (line 6) | def __init__( method get_min_sample_size (line 9) | def get_min_sample_size( method find_sprob (line 12) | def find_sprob(self, n: Any, sub_audit: PairwiseAudit) -> Any: ... method next_sample_size (line 13) | def next_sample_size( method get_upper_bound (line 16) | def get_upper_bound(self, n: Any, start: Any): ... method binary_search_estimate (line 17) | def binary_search_estimate( method stopping_condition_pairwise (line 20) | def stopping_condition_pairwise(self, pair: str, verbose: bool = ...) ... method next_min_winner_ballots_pairwise (line 21) | def next_min_winner_ballots_pairwise(self, sub_audit: PairwiseAudit) -... method compute_min_winner_ballots (line 22) | def compute_min_winner_ballots( method find_kmin (line 25) | def find_kmin( method compute_risk (line 28) | def compute_risk( method get_risk_level (line 31) | def get_risk_level(self): ... method compute_all_min_winner_ballots (line 32) | def compute_all_min_winner_ballots( FILE: stubs/r2b2/minerva.pyi class Minerva (line 5) | class Minerva(Audit): method __init__ (line 6) | def __init__( method get_min_sample_size (line 9) | def get_min_sample_size( method satisfactory_sample_size (line 12) | def satisfactory_sample_size( method kmin_search_upper_bound (line 15) | def kmin_search_upper_bound(self, n: Any, sub_audit: PairwiseAudit) ->... method sample_size_kmin (line 16) | def sample_size_kmin( method find_sprob (line 26) | def find_sprob(self, n: Any, sub_audit: PairwiseAudit) -> Any: ... method binary_search_estimate (line 27) | def binary_search_estimate( method next_sample_size_gaussian (line 30) | def next_sample_size_gaussian(self, sprob: float = ...): ... method next_sample_size (line 31) | def next_sample_size( method get_upper_bound (line 34) | def get_upper_bound(self, n: Any, start: Any): ... method stopping_condition_pairwise (line 35) | def stopping_condition_pairwise(self, pair: str, verbose: bool = ...) ... method next_min_winner_ballots_pairwise (line 36) | def next_min_winner_ballots_pairwise(self, sub_audit: PairwiseAudit) -... method compute_min_winner_ballots (line 37) | def compute_min_winner_ballots( method find_kmin (line 40) | def find_kmin( method compute_all_min_winner_ballots (line 43) | def compute_all_min_winner_ballots( method compute_risk (line 50) | def compute_risk( method get_risk_level (line 53) | def get_risk_level(self): ... FILE: stubs/r2b2/minerva2.pyi class Minerva2 (line 5) | class Minerva2(Audit): method __init__ (line 6) | def __init__( method get_min_sample_size (line 9) | def get_min_sample_size( method satisfactory_sample_size (line 12) | def satisfactory_sample_size( method kmin_search_upper_bound (line 15) | def kmin_search_upper_bound(self, n: Any, sub_audit: PairwiseAudit) ->... method sample_size_kmin (line 16) | def sample_size_kmin( method find_sprob (line 26) | def find_sprob(self, n: Any, sub_audit: PairwiseAudit) -> Any: ... method binary_search_estimate (line 27) | def binary_search_estimate( method next_sample_size (line 30) | def next_sample_size( method get_upper_bound (line 33) | def get_upper_bound(self, n: Any, start: Any): ... method stopping_condition_pairwise (line 34) | def stopping_condition_pairwise(self, pair: str, verbose: bool = ...) ... method next_min_winner_ballots_pairwise (line 35) | def next_min_winner_ballots_pairwise(self, sub_audit: PairwiseAudit) -... method compute_min_winner_ballots (line 36) | def compute_min_winner_ballots( # type: ignore method find_kmin (line 39) | def find_kmin( method compute_risk (line 42) | def compute_risk( # type: ignore method get_risk_level (line 45) | def get_risk_level(self): ... method current_dist_null (line 46) | def current_dist_null(self) -> None: ... method current_dist_reported (line 47) | def current_dist_reported(self) -> None: ... method compute_all_min_winner_ballots (line 48) | def compute_all_min_winner_ballots( # type: ignore FILE: stubs/r2b2/simulation/athena.pyi class AthenaOneRoundRisk (line 5) | class AthenaOneRoundRisk(Simulation): method __init__ (line 12) | def __init__( method trial (line 27) | def trial(self, seed: Any): ... method analyze (line 28) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class AthenaOneRoundStoppingProb (line 30) | class AthenaOneRoundStoppingProb(Simulation): method __init__ (line 37) | def __init__( method trial (line 52) | def trial(self, seed: Any): ... method analyze (line 53) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... FILE: stubs/r2b2/simulation/eor_bravo.pyi class EOR_BRAVOMultiRoundStoppingProb (line 5) | class EOR_BRAVOMultiRoundStoppingProb(Simulation): method __init__ (line 14) | def __init__( method trial (line 31) | def trial(self, seed: Any): ... method analyze (line 32) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class EOR_BRAVOMultiRoundRisk (line 34) | class EOR_BRAVOMultiRoundRisk(Simulation): method __init__ (line 43) | def __init__( method trial (line 60) | def trial(self, seed: Any): ... method analyze (line 61) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... FILE: stubs/r2b2/simulation/filip_athena.pyi class FZMinervaOneRoundRisk (line 4) | class FZMinervaOneRoundRisk(Simulation): method __init__ (line 10) | def __init__( method trial (line 24) | def trial(self, seed: Any): ... method analyze (line 25) | def analyze(self) -> None: ... FILE: stubs/r2b2/simulation/minerva.pyi class MinervaOneRoundRisk (line 5) | class MinervaOneRoundRisk(Simulation): method __init__ (line 11) | def __init__( method trial (line 25) | def trial(self, seed: Any): ... method analyze (line 26) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class MinervaOneRoundStoppingProb (line 28) | class MinervaOneRoundStoppingProb(Simulation): method __init__ (line 34) | def __init__( method trial (line 48) | def trial(self, seed: Any): ... method analyze (line 49) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class MinervaOneRoundAlteredMargin (line 51) | class MinervaOneRoundAlteredMargin(Simulation): method __init__ (line 58) | def __init__( method trial (line 74) | def trial(self, seed: Any): ... method analyze (line 75) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class MinervaMultiRoundStoppingProb (line 77) | class MinervaMultiRoundStoppingProb(Simulation): method __init__ (line 86) | def __init__( method trial (line 103) | def trial(self, seed: Any): ... method analyze (line 104) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class MinervaMultiRoundRisk (line 106) | class MinervaMultiRoundRisk(Simulation): method __init__ (line 115) | def __init__( method trial (line 132) | def trial(self, seed: Any): ... method analyze (line 133) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class MinervaRandomMultiRoundRisk (line 135) | class MinervaRandomMultiRoundRisk(Simulation): method __init__ (line 142) | def __init__( method trial (line 157) | def trial(self, seed: Any): ... method analyze (line 158) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class MinervaRandomMultiRoundStoppingProb (line 160) | class MinervaRandomMultiRoundStoppingProb(Simulation): method __init__ (line 167) | def __init__( method trial (line 182) | def trial(self, seed: Any): ... method analyze (line 183) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class MinervaMultiRoundAlteredMargin (line 185) | class MinervaMultiRoundAlteredMargin(Simulation): method __init__ (line 193) | def __init__( method trial (line 210) | def trial(self, seed: Any): ... method analyze (line 211) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... FILE: stubs/r2b2/simulation/minerva2.pyi class Minerva2OneRoundRisk (line 5) | class Minerva2OneRoundRisk(Simulation): method __init__ (line 11) | def __init__( method trial (line 25) | def trial(self, seed: Any): ... method analyze (line 26) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class Minerva2OneRoundStoppingProb (line 28) | class Minerva2OneRoundStoppingProb(Simulation): method __init__ (line 34) | def __init__( method trial (line 48) | def trial(self, seed: Any): ... method analyze (line 49) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class Minerva2OneRoundAlteredMargin (line 51) | class Minerva2OneRoundAlteredMargin(Simulation): method __init__ (line 58) | def __init__( method trial (line 74) | def trial(self, seed: Any): ... method analyze (line 75) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class Minerva2MultiRoundStoppingProb (line 77) | class Minerva2MultiRoundStoppingProb(Simulation): method __init__ (line 86) | def __init__( method trial (line 103) | def trial(self, seed: Any): ... method analyze (line 104) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class Minerva2MultiRoundRisk (line 106) | class Minerva2MultiRoundRisk(Simulation): method __init__ (line 115) | def __init__( method trial (line 132) | def trial(self, seed: Any): ... method analyze (line 133) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class Minerva2RandomMultiRoundRisk (line 135) | class Minerva2RandomMultiRoundRisk(Simulation): method __init__ (line 142) | def __init__( method trial (line 157) | def trial(self, seed: Any): ... method analyze (line 158) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class Minerva2RandomMultiRoundStoppingProb (line 160) | class Minerva2RandomMultiRoundStoppingProb(Simulation): method __init__ (line 167) | def __init__( method trial (line 182) | def trial(self, seed: Any): ... method analyze (line 183) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class Minerva2MultiRoundAlteredMargin (line 185) | class Minerva2MultiRoundAlteredMargin(Simulation): method __init__ (line 193) | def __init__( method trial (line 210) | def trial(self, seed: Any): ... method analyze (line 211) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... FILE: stubs/r2b2/simulation/so_bravo.pyi class SO_BRAVOMultiRoundStoppingProb (line 5) | class SO_BRAVOMultiRoundStoppingProb(Simulation): method __init__ (line 14) | def __init__( method trial (line 31) | def trial(self, seed: Any): ... method analyze (line 32) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... class SO_BRAVOMultiRoundRisk (line 34) | class SO_BRAVOMultiRoundRisk(Simulation): method __init__ (line 43) | def __init__( method trial (line 60) | def trial(self, seed: Any): ... method analyze (line 61) | def analyze(self, verbose: bool = ..., hist: bool = ...) -> Any: ... FILE: stubs/r2b2/simulator.pyi class DBInterface (line 6) | class DBInterface: method __init__ (line 9) | def __init__( method audit_lookup (line 17) | def audit_lookup( method contest_lookup (line 20) | def contest_lookup( method simulation_lookup (line 23) | def simulation_lookup( method trial_lookup (line 33) | def trial_lookup(self, sim_id: Any, *args: Any, **kwargs: Any): ... method write_trial (line 34) | def write_trial(self, entry: Any) -> None: ... method update_analysis (line 35) | def update_analysis(self, sim_id: Any, entry: Any) -> None: ... class Simulation (line 37) | class Simulation(ABC, metaclass=abc.ABCMeta): method __init__ (line 49) | def __init__( method run (line 65) | def run(self, n: int) -> Any: ... method get_seed (line 66) | def get_seed(self): ... method output (line 67) | def output(self, fd: str = ...) -> Any: ... method output_audit (line 68) | def output_audit(self): ... method trial (line 70) | def trial(self, seed: Any) -> Any: ... method analyze (line 72) | def analyze(self, *args: Any, **kwargs: Any) -> Any: ... function histogram (line 74) | def histogram(values: List, xlabel: str, bins: Any = ...) -> Any: ... FILE: stubs/r2b2/so_bravo.pyi class SO_BRAVO (line 5) | class SO_BRAVO(Audit): method __init__ (line 7) | def __init__( method get_min_sample_size (line 10) | def get_min_sample_size( method find_sprob (line 13) | def find_sprob(self, n: Any, sub_audit: PairwiseAudit) -> Any: ... method next_sample_size (line 14) | def next_sample_size( method stopping_condition_pairwise (line 17) | def stopping_condition_pairwise(self, pair: str, verbose: bool = ...) ... method next_min_winner_ballots_pairwise (line 18) | def next_min_winner_ballots_pairwise(self, sub_audit: PairwiseAudit) -... method compute_min_winner_ballots (line 19) | def compute_min_winner_ballots( method compute_risk (line 22) | def compute_risk( method get_risk_level (line 25) | def get_risk_level(self): ... method compute_all_min_winner_ballots (line 26) | def compute_all_min_winner_ballots( FILE: stubs/r2b2/tests/test_athena.pyi function test_simple_athena (line 9) | def test_simple_athena() -> None: ... function test_athena_minerva_paper (line 10) | def test_athena_minerva_paper() -> None: ... function test_athena_execute_round (line 11) | def test_athena_execute_round() -> None: ... function test_interactive_athena (line 12) | def test_interactive_athena() -> None: ... function test_bulk_athena (line 13) | def test_bulk_athena() -> None: ... function test_athena_next_sample_size (line 14) | def test_athena_next_sample_size() -> None: ... function test_exceptions (line 15) | def test_exceptions() -> None: ... FILE: stubs/r2b2/tests/test_audit.pyi class SimpleAudit (line 7) | class SimpleAudit(Audit): method __init__ (line 8) | def __init__( method get_min_sample_size (line 16) | def get_min_sample_size(self, sub_audit: PairwiseAudit) -> Any: ... method next_sample_size (line 17) | def next_sample_size(self): ... method stopping_condition_pairwise (line 18) | def stopping_condition_pairwise(self, pair: str, verbose: bool) -> boo... method next_min_winner_ballots_pairwise (line 19) | def next_min_winner_ballots_pairwise(self, sub_audit: PairwiseAudit) -... method compute_risk (line 20) | def compute_risk(self, sub_audit: PairwiseAudit) -> Any: ... method compute_min_winner_ballots (line 21) | def compute_min_winner_ballots(self, sub_audit: PairwiseAudit) -> Any:... method compute_all_min_winner_ballots (line 22) | def compute_all_min_winner_ballots(self, sub_audit: PairwiseAudit) -> ... method get_risk_level (line 23) | def get_risk_level(self) -> None: ... function test_simple_audit (line 25) | def test_simple_audit() -> None: ... function test_simple_audit_execution (line 26) | def test_simple_audit_execution() -> None: ... function test_simple_audit_execute_rounds (line 27) | def test_simple_audit_execute_rounds() -> None: ... function test_repr (line 28) | def test_repr() -> None: ... function test_str (line 29) | def test_str() -> None: ... function test_pairwise_str (line 30) | def test_pairwise_str() -> None: ... function test_pairwise_repr (line 31) | def test_pairwise_repr() -> None: ... function test_initialization_errors (line 32) | def test_initialization_errors() -> None: ... function test_exceptions (line 33) | def test_exceptions() -> None: ... function test_asn (line 34) | def test_asn() -> None: ... function test_get_interval (line 35) | def test_get_interval() -> None: ... function test_current_dist_null (line 36) | def test_current_dist_null() -> None: ... function test_current_dist_reported (line 37) | def test_current_dist_reported() -> None: ... FILE: stubs/r2b2/tests/test_brla.pyi function test_simple_brla (line 5) | def test_simple_brla() -> None: ... function test_str (line 6) | def test_str() -> None: ... function test_exceptions (line 7) | def test_exceptions() -> None: ... FILE: stubs/r2b2/tests/test_cli.pyi function test_interactive_simple (line 3) | def test_interactive_simple() -> None: ... function test_interactive_given_audit (line 4) | def test_interactive_given_audit() -> None: ... function test_interactive_given_contest (line 5) | def test_interactive_given_contest() -> None: ... function test_interactive_given_both (line 6) | def test_interactive_given_both() -> None: ... function test_interactive_multi_round (line 7) | def test_interactive_multi_round() -> None: ... function test_bulk_min_to_max (line 8) | def test_bulk_min_to_max() -> None: ... function test_bulk_round_list (line 9) | def test_bulk_round_list() -> None: ... function test_template_contest (line 10) | def test_template_contest() -> None: ... function test_tempalte_election (line 11) | def test_tempalte_election() -> None: ... function test_template_contest_output_file (line 12) | def test_template_contest_output_file() -> None: ... function test_tempalte_election_output_file (line 13) | def test_tempalte_election_output_file() -> None: ... FILE: stubs/r2b2/tests/test_contest.pyi function test_simple_contest (line 3) | def test_simple_contest() -> None: ... function test_sorting_tally (line 4) | def test_sorting_tally() -> None: ... function test_pairwise_sub_contests (line 5) | def test_pairwise_sub_contests() -> None: ... function test_repr (line 6) | def test_repr() -> None: ... function test_str (line 7) | def test_str() -> None: ... function test_initialization_errors (line 8) | def test_initialization_errors() -> None: ... FILE: stubs/r2b2/tests/test_election.pyi function test_simple_election (line 3) | def test_simple_election() -> None: ... function test_repr (line 4) | def test_repr() -> None: ... function test_str (line 5) | def test_str() -> None: ... function test_initialization_errors (line 6) | def test_initialization_errors() -> None: ... FILE: stubs/r2b2/tests/test_eor_bravo.pyi function test_simple_eor_bravo (line 10) | def test_simple_eor_bravo() -> None: ... function test_eor_bravo_kmins (line 11) | def test_eor_bravo_kmins() -> None: ... function test_min_sample_size (line 12) | def test_min_sample_size() -> None: ... function test_eor_bravo_first_round_estimate (line 13) | def test_eor_bravo_first_round_estimate() -> None: ... function test_eor_bravo_second_round_estimate (line 14) | def test_eor_bravo_second_round_estimate() -> None: ... function test_execute_round_eor_bravo (line 15) | def test_execute_round_eor_bravo() -> None: ... FILE: stubs/r2b2/tests/test_filip_athena_sim.pyi function test_creation (line 9) | def test_creation() -> None: ... function test_one_trial (line 10) | def test_one_trial() -> None: ... FILE: stubs/r2b2/tests/test_minerva.pyi function test_simple_minerva (line 9) | def test_simple_minerva() -> None: ... function test_min_sample_size (line 10) | def test_min_sample_size() -> None: ... function test_kmin_upper_bound (line 11) | def test_kmin_upper_bound() -> None: ... function test_minerva_first_round_estimate (line 12) | def test_minerva_first_round_estimate() -> None: ... function test_minerva_first_round_gaussian_estimate (line 13) | def test_minerva_first_round_gaussian_estimate() -> None: ... function test_minerva_second_round_estimate (line 14) | def test_minerva_second_round_estimate() -> None: ... function test_minerva_georgia_senate_2020 (line 15) | def test_minerva_georgia_senate_2020() -> None: ... function test_minerva_kmins (line 16) | def test_minerva_kmins() -> None: ... function test_execute_round_minerva (line 17) | def test_execute_round_minerva() -> None: ... function test_interactive_minerva (line 18) | def test_interactive_minerva() -> None: ... function test_next_sample_size_minerva (line 19) | def test_next_sample_size_minerva() -> None: ... function test_multiple_candidate_minerva (line 20) | def test_multiple_candidate_minerva() -> None: ... function test_bulk_minerva (line 21) | def test_bulk_minerva() -> None: ... function test_sentinel (line 22) | def test_sentinel() -> None: ... function test_exceptions (line 23) | def test_exceptions() -> None: ... FILE: stubs/r2b2/tests/test_minerva2.pyi function test_minerva2_kmins (line 8) | def test_minerva2_kmins() -> None: ... function test_simple_minerva2 (line 9) | def test_simple_minerva2() -> None: ... function test_min_sample_size (line 10) | def test_min_sample_size() -> None: ... function test_kmin_upper_bound (line 11) | def test_kmin_upper_bound() -> None: ... function test_minerva2_first_round_estimate (line 12) | def test_minerva2_first_round_estimate() -> None: ... function test_minerva2_second_round_estimate (line 13) | def test_minerva2_second_round_estimate() -> None: ... function test_exceptions (line 14) | def test_exceptions() -> None: ... function test_execute_round_minerva (line 15) | def test_execute_round_minerva() -> None: ... function test_minerva2_third_round_estimate (line 16) | def test_minerva2_third_round_estimate() -> None: ... FILE: stubs/r2b2/tests/test_so_bravo.pyi function test_simple_so_bravo (line 10) | def test_simple_so_bravo() -> None: ... function test_so_bravo_kmins (line 11) | def test_so_bravo_kmins() -> None: ... function test_min_sample_size (line 12) | def test_min_sample_size() -> None: ... function test_execute_round_so_bravo (line 13) | def test_execute_round_so_bravo() -> None: ... function test_find_sprob_first_round (line 14) | def test_find_sprob_first_round() -> None: ... function test_next_sample_size_first_round (line 15) | def test_next_sample_size_first_round() -> None: ... FILE: stubs/r2b2/tests/util.pyi function generate_contest (line 5) | def generate_contest(size: Any): ... function generate_election (line 6) | def generate_election(max_size: Any, max_contests: Optional[Any] = ...):... function parse_contest_list (line 7) | def parse_contest_list(json_file: Any): ... function parse_contest (line 8) | def parse_contest(json_file: Any): ... function parse_election (line 9) | def parse_election(json_file: Any): ...