├── .github ├── CODEOWNERS ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── integration.yml │ ├── pre-commit.yml │ ├── release.yml │ └── test.yml ├── .gitignore ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── README-data.md ├── README.md ├── notebooks └── test-model.ipynb ├── pytest.ini ├── requirements-dev.txt ├── requirements-test.txt ├── requirements.txt ├── setup.cfg ├── setup.py ├── src └── elexmodel │ ├── __init__.py │ ├── cli.py │ ├── client.py │ ├── distributions │ ├── GaussianModel.py │ └── __init__.py │ ├── handlers │ ├── __init__.py │ ├── config.py │ ├── data │ │ ├── BasePreprocessedDataHandler.py │ │ ├── CombinedData.py │ │ ├── Estimandizer.py │ │ ├── Featurizer.py │ │ ├── LiveData.py │ │ ├── ModelResults.py │ │ ├── PreprocessedData.py │ │ ├── VersionedData.py │ │ └── __init__.py │ └── s3.py │ ├── logger.py │ ├── models │ ├── BaseElectionModel.py │ ├── BootstrapElectionModel.py │ ├── ConformalElectionModel.py │ ├── GaussianElectionModel.py │ ├── NonparametricElectionModel.py │ └── __init__.py │ └── utils │ ├── __init__.py │ ├── constants.py │ ├── file_utils.py │ ├── math_utils.py │ └── pandas_utils.py ├── tests ├── conftest.py ├── distributions │ └── test_gaussian_model.py ├── fixtures │ ├── config │ │ ├── 2017-11-07_VA_G.json │ │ ├── 2018-03-06_TX_R.json │ │ ├── 2019-11-05_VA_G.json │ │ ├── 2020-08-04_AZ_R.json │ │ └── 2021-11-02_VA_G.json │ └── data │ │ ├── 2017-11-07_VA_G │ │ ├── G │ │ │ ├── data_county.csv │ │ │ └── data_precinct.csv │ │ └── Y │ │ │ ├── data_county-district.csv │ │ │ └── data_precinct-district.csv │ │ ├── 2019-11-05_VA_G │ │ └── Y │ │ │ └── data_precinct-district.csv │ │ ├── 2020-08-04_AZ_R │ │ └── S │ │ │ └── data_precinct.csv │ │ ├── 2021-11-02_VA_G │ │ ├── G │ │ │ └── data_precinct.csv │ │ └── Y │ │ │ └── data_precinct-district.csv │ │ └── 2024-11-05_USA_G │ │ └── S │ │ ├── versioned_batch_margin.csv │ │ ├── versioned_no_errors.csv │ │ └── versioned_non_monotone.csv ├── handlers │ ├── test_combined_data.py │ ├── test_config.py │ ├── test_estimandizer.py │ ├── test_featurizer.py │ ├── test_live_data.py │ ├── test_model_results.py │ ├── test_preprocessed_data.py │ ├── test_s3.py │ └── test_versioned_data.py ├── integration_test.sh ├── models │ ├── test_base_election_model.py │ ├── test_bootstrap_election_model.py │ ├── test_conformal_election_model.py │ ├── test_gaussian_election_model.py │ └── test_nonparametric_election_model.py ├── test_client.py └── utils │ ├── test_file_utils.py │ ├── test_math_utils.py │ └── test_pandas_utils.py └── tox.ini /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.github/CODEOWNERS -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/integration.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.github/workflows/integration.yml -------------------------------------------------------------------------------- /.github/workflows/pre-commit.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.github/workflows/pre-commit.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /README-data.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/README-data.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/README.md -------------------------------------------------------------------------------- /notebooks/test-model.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/notebooks/test-model.ipynb -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/pytest.ini -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/requirements-dev.txt -------------------------------------------------------------------------------- /requirements-test.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/requirements-test.txt -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | -e . -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/setup.cfg -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/setup.py -------------------------------------------------------------------------------- /src/elexmodel/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/elexmodel/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/cli.py -------------------------------------------------------------------------------- /src/elexmodel/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/client.py -------------------------------------------------------------------------------- /src/elexmodel/distributions/GaussianModel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/distributions/GaussianModel.py -------------------------------------------------------------------------------- /src/elexmodel/distributions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/elexmodel/handlers/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/elexmodel/handlers/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/config.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/BasePreprocessedDataHandler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/BasePreprocessedDataHandler.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/CombinedData.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/CombinedData.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/Estimandizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/Estimandizer.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/Featurizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/Featurizer.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/LiveData.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/LiveData.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/ModelResults.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/ModelResults.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/PreprocessedData.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/PreprocessedData.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/VersionedData.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/data/VersionedData.py -------------------------------------------------------------------------------- /src/elexmodel/handlers/data/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/elexmodel/handlers/s3.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/handlers/s3.py -------------------------------------------------------------------------------- /src/elexmodel/logger.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/logger.py -------------------------------------------------------------------------------- /src/elexmodel/models/BaseElectionModel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/models/BaseElectionModel.py -------------------------------------------------------------------------------- /src/elexmodel/models/BootstrapElectionModel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/models/BootstrapElectionModel.py -------------------------------------------------------------------------------- /src/elexmodel/models/ConformalElectionModel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/models/ConformalElectionModel.py -------------------------------------------------------------------------------- /src/elexmodel/models/GaussianElectionModel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/models/GaussianElectionModel.py -------------------------------------------------------------------------------- /src/elexmodel/models/NonparametricElectionModel.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/models/NonparametricElectionModel.py -------------------------------------------------------------------------------- /src/elexmodel/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/elexmodel/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/elexmodel/utils/constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/utils/constants.py -------------------------------------------------------------------------------- /src/elexmodel/utils/file_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/utils/file_utils.py -------------------------------------------------------------------------------- /src/elexmodel/utils/math_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/utils/math_utils.py -------------------------------------------------------------------------------- /src/elexmodel/utils/pandas_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/src/elexmodel/utils/pandas_utils.py -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/distributions/test_gaussian_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/distributions/test_gaussian_model.py -------------------------------------------------------------------------------- /tests/fixtures/config/2017-11-07_VA_G.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/config/2017-11-07_VA_G.json -------------------------------------------------------------------------------- /tests/fixtures/config/2018-03-06_TX_R.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/config/2018-03-06_TX_R.json -------------------------------------------------------------------------------- /tests/fixtures/config/2019-11-05_VA_G.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/config/2019-11-05_VA_G.json -------------------------------------------------------------------------------- /tests/fixtures/config/2020-08-04_AZ_R.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/config/2020-08-04_AZ_R.json -------------------------------------------------------------------------------- /tests/fixtures/config/2021-11-02_VA_G.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/config/2021-11-02_VA_G.json -------------------------------------------------------------------------------- /tests/fixtures/data/2017-11-07_VA_G/G/data_county.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2017-11-07_VA_G/G/data_county.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2017-11-07_VA_G/G/data_precinct.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2017-11-07_VA_G/G/data_precinct.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2017-11-07_VA_G/Y/data_county-district.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2017-11-07_VA_G/Y/data_county-district.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2017-11-07_VA_G/Y/data_precinct-district.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2017-11-07_VA_G/Y/data_precinct-district.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2019-11-05_VA_G/Y/data_precinct-district.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2019-11-05_VA_G/Y/data_precinct-district.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2020-08-04_AZ_R/S/data_precinct.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2020-08-04_AZ_R/S/data_precinct.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2021-11-02_VA_G/G/data_precinct.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2021-11-02_VA_G/G/data_precinct.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2021-11-02_VA_G/Y/data_precinct-district.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2021-11-02_VA_G/Y/data_precinct-district.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2024-11-05_USA_G/S/versioned_batch_margin.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2024-11-05_USA_G/S/versioned_batch_margin.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2024-11-05_USA_G/S/versioned_no_errors.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2024-11-05_USA_G/S/versioned_no_errors.csv -------------------------------------------------------------------------------- /tests/fixtures/data/2024-11-05_USA_G/S/versioned_non_monotone.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/fixtures/data/2024-11-05_USA_G/S/versioned_non_monotone.csv -------------------------------------------------------------------------------- /tests/handlers/test_combined_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_combined_data.py -------------------------------------------------------------------------------- /tests/handlers/test_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_config.py -------------------------------------------------------------------------------- /tests/handlers/test_estimandizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_estimandizer.py -------------------------------------------------------------------------------- /tests/handlers/test_featurizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_featurizer.py -------------------------------------------------------------------------------- /tests/handlers/test_live_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_live_data.py -------------------------------------------------------------------------------- /tests/handlers/test_model_results.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_model_results.py -------------------------------------------------------------------------------- /tests/handlers/test_preprocessed_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_preprocessed_data.py -------------------------------------------------------------------------------- /tests/handlers/test_s3.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_s3.py -------------------------------------------------------------------------------- /tests/handlers/test_versioned_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/handlers/test_versioned_data.py -------------------------------------------------------------------------------- /tests/integration_test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/integration_test.sh -------------------------------------------------------------------------------- /tests/models/test_base_election_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/models/test_base_election_model.py -------------------------------------------------------------------------------- /tests/models/test_bootstrap_election_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/models/test_bootstrap_election_model.py -------------------------------------------------------------------------------- /tests/models/test_conformal_election_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/models/test_conformal_election_model.py -------------------------------------------------------------------------------- /tests/models/test_gaussian_election_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/models/test_gaussian_election_model.py -------------------------------------------------------------------------------- /tests/models/test_nonparametric_election_model.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/models/test_nonparametric_election_model.py -------------------------------------------------------------------------------- /tests/test_client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/test_client.py -------------------------------------------------------------------------------- /tests/utils/test_file_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/utils/test_file_utils.py -------------------------------------------------------------------------------- /tests/utils/test_math_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/utils/test_math_utils.py -------------------------------------------------------------------------------- /tests/utils/test_pandas_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tests/utils/test_pandas_utils.py -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/washingtonpost/elex-live-model/HEAD/tox.ini --------------------------------------------------------------------------------